27
Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki [email protected]

Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Embed Size (px)

DESCRIPTION

Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki [email protected]. Plan przedmiotu. BAZY DANYCH – edycja 2010 zaoczne prowadzący: zajęcia 1-8: Wojciech Mościbrodzki wykład: część teoretyczna zaliczenie w postaci egzaminu (WM) laboratorium praktyka baz danych projekt - PowerPoint PPT Presentation

Citation preview

Page 1: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Relacyjne Bazy DanychWykład 01Wojciech St. Moś[email protected]

Page 2: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Plan przedmiotuPlan przedmiotu

BAZY DANYCH – edycja 2010 zaoczne prowadzący:

• zajęcia 1-8: Wojciech Mościbrodzki wykład:

• część teoretyczna• zaliczenie w postaci egzaminu (WM)

laboratorium• praktyka baz danych• projekt

literatura:• R. Elmasari, S. B. Navathe, Wprowadzenie do systemów baz danych,

Helion, 2005• R. Stones, N.Matthew, Bazy danych i PostgreSQL, Helion, 2002 (seria

Wrox)• Jeffrey D. Ullman, Jennifer Widom, Podstawowy wykład z systemów baz

danych, WNT, 2001 (seria Klasyka Informatyki)• S. Sumathi, S. Esakkirajan Fundamentals of Relational Database

Management Systems• www.mysql.com

Page 3: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Krótkie wprowadzenie do teorii i praktyki danychKrótkie wprowadzenie do teorii i praktyki danych

DANE = to wszystko co jest/może być przetwarzane

BAZA DANYCH pierwsze użycie pojęcia - 1963 zbiór danych (niekoniecznie w postaci elektronicznej) program do przetwarzania i zarządzania danymi (DBMS=SZBD) jeden ze zbiorów danych zarządzanych przez DBMS

Funkcje DBMS: zarządzanie danymi (dodawanie, usuwanie, modyfikacja) wyszukiwanie danych i informacji zarządzanie bazami danych zarządzenie bezpieczeństwem, wydajnością i awariami

Page 4: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Modele danychModele danych

MODELE DANYCH plikowy sieciowy (kolejki i złożone struktury składające się na kolejki) hierarchiczny (pliki, rekordy, związki nadrzędny-podrzędny) relacyjny obiektowy strumieniowy XML

Page 5: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Bazy danych, bazy wiedzyBazy danych, bazy wiedzy

Struktury informacji dane metadane wiedza inteligencja?

Wyzwania gromadzenie zarządzanie przetwarzanie wnioskowanie rozumienie wymyślanie

Page 6: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Systemy ekspertoweSystemy ekspertowe

System ekspercki: jawna reprezentacja wiedzy oddzielenie wiedzy eksperckiej od procedur sterowania zdolność do wyjaśnień (ang. explanation facilities), w szczególności sposobu

rozwiązania danego problemu rozwiązanie powstaje z wykorzystaniem różnych metod wnioskowania przetwarzanie symboli zamiast typowych obliczeń numerycznych

Page 7: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Serwery baz danych (baz komputerowych)Serwery baz danych (baz komputerowych)

Serwer infrastruktura sprzętowa bazy danych oprogramowanie SZBD

Konfiguracja typowa: Serwer = {baza1, baza2, ... bazaN} Komputer = {serwer1, serwer2, ... serwerN}

Model klastra serwerów baz relacyjnych: Kluster = {serwer1, serwer2, serwer3... serwer N}

• serwer1 = {baza1, baza2, baza3, ... bazaM}– baza1 = {encja1, encja2, ... encja3, ....relacja1, relacja2, ...}

Page 8: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Bazy danych – SZBD, serwer, architekturyBazy danych – SZBD, serwer, architektury

Architektury plikowe, serwerowe i klastrowe

Page 9: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Typowa architektura MySQLTypowa architektura MySQL

Page 10: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Konfiguracja dostępu do MySQLKonfiguracja dostępu do MySQL

Pośród poleceń, które będziemy wykonywać można wyróżnić: Standardowe rozkazy SQL Dialekt SQL, zależny od serwera Polecenia klienta i serwera, wychodzące poza SQL

Page 11: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Pierwsze podsumowaniePierwsze podsumowanie

Dane i zbiory danych

Model danych

System bazy danych = dane + system zarządzania

Serwery baz danych

Page 12: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

RELACYJNY MODEL DANYCH

Page 13: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

EncjeEncje

Encja – pojęcie pierwotne; niepowtarzalny, unikalny byt

Szerzej: rodzaj reprezentacji grupy obiektów opisywanych przez takie same własności; rodzaj nowotworzonego „typu” (analogia do języków programowania).

POPRAWNIEJ: ENCJA-TYP

PRZYJMUJE SIĘ JEDNAK: ENCJA = ENCJA-TYP

Tradycyjnie, nazwy encji oznaczamy liczbą pojedynczą (CZŁOWIEK, a nie: LUDZIE)

Przykład: encja SAMOCHÓD (przedmioty posiadajace kolor i tablicę rejestracyjną)

Dwa fizyczne przedmioty mogą należeć do tej samej encji lub nie (zależnie od założeń, definicji)

np. dwóch ludzi rozróżnianych tylko po PESEL – tak Człowiek-pracownik firmy i człowiek-obcokrajowiec - nie

Page 14: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

EncjeEncje

Atrybut encji – jedna z jej własności; przyjmuje się, że atrybuty mają określony pewien zakres dopuszczalnych wartości

Encja jest pewną abstrakcją, modelem, logiczną reprezentacją rzeczywistości – wygodnie o niej myśleć jak o tablicy o ustalonej strukturze („miejsce na atrybuty”) lub o zbiorze obiektów

SAMOCHÓD

NrRej Kolor RokProd

Page 15: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Relacje i krotnościRelacje i krotności

Relacja (ściślej: relacja binarna), to związek, w którym pozostają ze sobą dwie encje (ich elementy).

Możliwe są następujące przypadki: Jednemu elementowi encji A odpowiada kilka elementów encji B, ale

każdemu elementowi B odpowiada jeden (lub zero) elementów encji A Jednemu elementowi encji A odpowiada kilka elementów encji B, a

każdemu elementowi B odpowiada kilka (lub zero) elementów encji A Jednemu elementowi encji A odpowiada jeden (lub zero) element encji B, a

każdemu elementowi B odpowiada jeden (lub zero) elementów encji A

UWAGA: jeśli element encji nie pozostaje w relacji, to nie „psuje” to krotności.

Czasami wyraźnie oznaczamy to nazwą np. „relacja 1-do-1 z opcją 0”

Page 16: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Relacja jeden-do-jedenRelacja jeden-do-jeden

Przykład: CZŁOWIEK i PASZPORT

relacja 1-do-1

CZŁOWIEK PASZPORT

relacja 1-do-1

UWAGI:

Każdy człowiek może mieć tylko jeden paszport

Paszport może należeć tylko do jednego człowieka

Są ludzie, którzy nie mają paszportów

Są paszporty, które do nikogo nie należą (bo np. właściciel zmarł)

Taki model nie zakłada możliwości błędu (np. podwójnie wydany dokument!)

Page 17: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Relacja jeden-do-wieleRelacja jeden-do-wiele

Przykład: CZŁOWIEK i PIES

relacja 1-do-

CZŁOWIEK PIES

relacja 1-do-

UWAGI:

Każdy człowiek może być właścicielem wielu psów

Jeden pies uznaje za swego pana tylko jednego człowieka

Są ludzie, którzy nie mają psów

Są bezpańskie psy

Page 18: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Relacja wiele-do-wieleRelacja wiele-do-wiele

Przykład: CZŁOWIEK i SAMOCHÓD

relacja -do-

CZŁOWIEK SAMOCHÓD

relacja -do-

UWAGI:

Każdy człowiek może być właścicielem wielu samochodów

Każdy samochód może mieć wielu właścicieli (współwłasność)

Są ludzie, którzy nie mają samochodów

Są bezpańskie samochody (np. zezłomowane, porzucone, nieznany właściciel)

Page 19: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

ERDERD

Diagram związków encji (ERD) to podstawowe narzędzie modelowania danych

Składa się z ENCJI (wraz z ATRYBUTAMI) i RELACJI pomiędzy nimi zachodzących

Istnieją (niestety) różne sposoby zapisu encji i relacji, klasycznie:

ENCJA Atrybut Relacja

Page 20: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Klasyczny ERDKlasyczny ERD

Zapis klasyczny:

NrRej Kolor

ENCJA CZŁOWIEK

PESEL

Ma

0

Zapis klasyczny i uproszczony (bez nazw relacji):

NrRej Kolor

ENCJA CZŁOWIEK

PESEL

Page 21: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Inny przykładInny przykład

Page 22: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Notacja UMLNotacja UML

Page 23: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Notacja w jednym z narzędziNotacja w jednym z narzędzi

Page 24: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Notacja rozszerzona EERDNotacja rozszerzona EERD

Notacja rozszerzona wprowadzona została głównie dla możliwości pokazywania „zawierania się” encji w sobie

Page 25: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

KluczeKlucze

Z pojęciem ENCJI wiąże się pojęcie KLUCZA (key), czyli takiego zestawu atrybutów, których wartości są unikalne w obrębie encji.

Klucze mogą być proste (jeden atrybut) lub złożone (wiele atrybutów). Od klucza wymaga się, by był możliwie mały – to znaczy, że usunięcie jednego z atrybutów sprawia, że pozostałe nie stanowią klucza.

Każda encja może mieć kilka kluczy kandydujących (to jest zestawów atrybutów, które mogą być kluczami), z których wybierany jest klucz główny.

Page 26: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

KluczeKlucze

Istnieje kilka kluczy kandydujących – prostych i złożonych

Pytanie: czy PESEL jest dobrym kluczem w bazie danych ludzi? Teoretyk: TAK! Praktyk: NIE!

Page 27: Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki wojmos@wojmos

Dane logiczne i dane fizyczneDane logiczne i dane fizyczne

Od początku istnienia „nowożytnych” baz danych informacje przechowywano w tabelach.

ENCJA TABELA BAZY DANYCH

ATRYBUT KOLUMNA

ELEMENT ENCJI KROTKA / REKORD

RELACJA TABELA BAZY DANYCH

Relacyjne bazy danych są w rzeczywistości zarządzalnymi zbiorami tabel, na których wykonywane są proste operacje Językiem porozumiewania się z bazą danych jest SQL Polecenia SQL to ZAPYTANIA (a nie: kwerendy!!!)