Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach



Podobne dokumenty
UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Modelowanie danych, projektowanie systemu informatycznego

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Bazy danych - Materiały do laboratoriów VIII

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

1 Projektowanie systemu informatycznego

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Wykład 8. SQL praca z tabelami 5

Paweł Rajba

Bazy danych 10. SQL Widoki

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Autor: Joanna Karwowska

1 DML - modyfikacja 1. 2 DDL - definicja struktur Definiowanie tabel Więzy integralności Modyfikacja definicji...

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

20 października Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład II

Wykład 4. SQL praca z tabelami 1

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

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

Wykład 2. SQL 1 Structured Query Lenguage

Typy Oracle atrybutów relacji Typ NUMBER (1)

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Typy Oracle atrybutów relacji Typ NUMBER (1)

Oracle PL/SQL. Paweł Rajba.

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

Wykład 5. SQL praca z tabelami 2

Bazy danych. Dr inż. Paweł Kasprowski

Projektowanie systemów baz danych

Oracle11g: Wprowadzenie do SQL

Język SQL, zajęcia nr 1

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

BAZA DANYCH SIECI HOTELI

Relacyjne bazy danych. Podstawy SQL

P o d s t a w y j ę z y k a S Q L

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów

Ref. 7 - Język SQL - polecenia DDL i DML

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wykład 05 Bazy danych

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

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

Przestrzenne bazy danych Podstawy języka SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

ACESS- zadania z wykorzystaniem poleceń SQL

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Język SQL. Rozdział 8. Język manipulowania danymi DML

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Systemy GIS Tworzenie zapytań w bazach danych

Relacyjne bazy danych. Podstawy SQL

Przykładowa baza danych BIBLIOTEKA

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Pakiety podprogramów Dynamiczny SQL

Bazy danych 6. Klucze obce. P. F. Góra

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Bazy danych Ćwiczenia projektowe

Model relacyjny. Wykład II

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Grupowanie i funkcje agregujące

Aspekty aktywne baz danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Hurtownia Świętego Mikołaja projekt bazy danych

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Bazy danych 7. SQL podstawy

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Bazy danych i usługi sieciowe

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

Język zapytań SQL- język relacyjnych baz danych

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Uprawnienia, role, synonimy

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Zaawansowane bazy danych i hurtownie danych semestr I

SQL Structured Query Language

Obiektowe bazy danych

Transkrypt:

Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w uniwersalnym modelu niezależnym od modelu implementacyjnego model związków encji ( diagramy ER ) model UML - implementacyjne modele wykorzystywane do implementacji modeli konceptualnych modele danych ( relacyjne, obiektowe, itp. ) Obiekty świata rzeczywistego materialne i niematerialne materialne pracownik, samochód, budynek, towar, mieszkanie niematerialne konto bankowe, zamówienie, polisa ubezpieczeniowa zdarzenia choroba pracownika, urlop, przyznanie nagrody fakty znajomość języka obcego, stan magazynowy towaru Modelowanie pojęciowe na encjach ( założenia:) świat składa się z obiektów encji ęncje można pogrupować w typy każda encja ma własność służącą do jej identyfikacji encje są między sobą powiązane 1

Encja (ang. entity ) - reprezentuje zbiór obiektów w modelowanym fragmencie rzeczywistości, które posiadają te same cechy i są na tyle istotne, by trwale przechowywać o nich informacje. Cechy encji: każda encja posiada własności zwane też atrybutami każda encja posiada unikalny identyfikator konkretny obiekt świata rzeczywistego jest reprezentowany jako wystąpienie encji ( instancja encji ) każda encja ma unikalną nazwę ( podawana w liczbie pojedynczej np. STUDENT ) dowolny obiekt jest reprezentowany wyłącznie przez jedną encję Zapis własności encji Związki określają zbiór asocjacji pomiędzy instancjami encji ( powiązania pomiędzy obiektami świata rzeczywistego ). Encje objęte danym związkiem są uczestnikami tego związku. Liczba uczestników w związku jest nazwana jego stopniem. Typy związków: unarne, binarne, ternarne obligatoryjne lub opcjonalne jeden do jeden, jeden do wiele, wiele do wiele związki unarne wiążą instancję z instancją tej samej encji ( najczęściej reprezentują rekurencyjne powiązanie hierarchiczne) dla związków unarnych należy określić rolę jaką gra każda instancja encji w związku. 2

związki binarne wiążą instancje dwóch encji ( najczęściej spotykane ) związki ternarne wiążą instancje trzech encji Typ asocjacji określa liczbę instancji związku, w których może brać udział instancja encji asocjacja 1 : 1 każda instancja bierze udział w co najwyżej jednej instancji związku asocjacja 1 : N instancja jednej encji bierze udział w co najwyżej jednej instancji związku, instancja drugiej w dowolnej liczbie instancji związku asocjacja N : M instancje obu encji biorą udział w dowolnej liczbie instancji związku Opcjonalna przynależność do związku mogą istnieć instancje encji nie biorące udziału w żadnej instancji związku Obligatoryjna przynależność do związku wszystkie instancje encji muszą brać udział w instancji związku Zapis związków 3

Projektowanie systemu informatycznego Projekt fizyczny bazy danych jest realizowany przez informatyków na podstawie specyfikacji wymagań i modelu logicznego. Powiązany ze ściśle określonym Systemem Zarządzania Bazą Danych. Określa struktury logiczne i fizyczne. Efektem projektu fizycznego będą skrypty zawierające definicje: tabel ograniczeń integralnościowych parametrów fizycznych bazy danych dodatkowych obiektów ( perspektywy, indeksy, sekwencje itp. ) użytkowników i ich uprawnień Dla relacyjnych baz danych narzędziem fizycznej realizacji będzie część SQL'a nazwana DDL ( ang. Data Definition Language ) zawierająca niezbędne polecenia do: tworzenia CREATE..., usuwania DROP... i modyfikacji ALTER... struktur danych. 4

CREATE TABLE [<schemat>.]< nazwa_tabeli > ( <własności_relacyjne >) [<własności_fizyczne>] [<własności_tabeli>] ; Definicja kolumn własności relacyjnych tabeli CREATE TABLE [<schemat>.]< nazwa_tabeli > ( <nazwa_kolumny1> <typ> [ ( rozmiar )] [ DEFAULT < wyrażenie > ] [ < więzy_kolumny1> ] [, <nazwa_kolumny2 >... ] [, <więzy_tabeli>] ) ; Własności fizyczne tabeli CREATE TABLE < nazwa_tabeli > ( <własności_relacyjne > ) [ { < atrybuty_segmentu > [ < kompresja > ] ORGANIZATION { < typ_organizacji_segmentu > } CLUSTER < nazwa > ( < nazwa_kolumny1 [, < kolumna2 ]... ) } ] ; CREATE TABLE Tymczasem ( Kol1 NUMBER, Kol2 VARCHAR2(30) ); CREATE TABLE Mieszkancy ( Pesel NUMBER(11) NOT NULL, Nazwisko VARCHAR2(30), Imiona VARCHAR2(30), Data_zameldowania DATE DEFAULT Current_date ) ; CREATE TABLE Demo ( Id NUMBER( 10 ) ) TABLESPACE przykład STORAGE ( INITIAL 6144 ); CREATE TABLE Dzialy ( Id NUMBER( 2 ) PRIMARY KEY, Nazwa VARCHAR2( 50 ), Lokalizacja VARCHAR2( 20 ) ) ORGANIZATION INDEX PCTHRESHOLD 30 OVERFLOW TABLESPACE Nadmiar ; 5

CREATE TABLE Klienci ( Id NUMBER( 6 ), Nazwisko VARCHAR2( 50 ), Imiona VARCHAR2( 30 ), Kraj VARCHAR2( 30 ), Email VARCHAR2( 25 ) ) PARTITION BY LIST ( Kraj ) ( PARTITION Azja VALUES ( 'CHINY', ' TAJLANDIA'), PARTITION Europa VALUES ( 'NIEMCY', 'WŁOCHY' ), PARTITION Ameryka VALUES ( 'USA', 'KANADA' ), PARTITION Reszta VALUES ( DEFAULT ) ); CREATE TABLE Pracownicy_archiwum AS SELECT * FROM Pracownicy WHERE Id_zesp = 20 ; Definiowanie ograniczeń ( więzów spójności ) sposoby : dla kolumny definiowane inline lub out_of_line (za wyjątkiem NOT NULL ) dla tabeli definiowane out_of_line tworzone w poleceniu modyfikacji struktury tabeli wyłącznie out_of_line każde ograniczenie jest nazwane przez użytkownika lub przez system Definicja ograniczeń inline CREATE TABLE < nazwa_tabeli > ( < nazwa_kolumny1 > < typ> [ ( rozmiar) ] [ DEFAULT < wyrażenie >] [ [ CONSTRAINT < nazwa_ogr_kolumny > ] { [ NOT ] NULL UNIQUE PRIMARY KEY REFERENCES < nazwa_tabeli > (< nazwa_kolumny1>[,< nazwa_kolumny2 > ]... ) [ ON DELETE { CASCADE SET NULL } ] CHECK ( <warunek_logiczny >) } [DISABLE ENABLE ] ],.. ) ; CREATE TABLE Stanowiska ( Stanowisko VARCHAR2(15) constraint pk_stanowiska PRIMARY KEY, Placa_min NUMBER(7,1) constraint war1 CHECK ( Placa_min > 1500), Placa_max NUMBER(7,1) NOT NULL, constraint war CHECK (Placa_max >= Placa_min)) ; CREATE TABLE Kursy ( Kod NUMBER(3) constraint p_kod PRIMARY KEY, Nazwa VARCHAR2(30) NOT NULL, Koszt NUMBER( 7,1) constraint c_koszt CHECK ( Koszt > 0 )); 6

CREATE TABLE Pracownicy_kursy ( Numer NUMBER(4) constraint fk_numer REFERENCES Pracownicy, Kod NUMBER(3) constraint fk_kod REFERENCES Kursy, constraint pk_pk PRIMARY KEY (Numer, Kod)); DROP TABLE [< schemat>.]<nazwa_tabeli > [ CASCADE CONSTRAINTS ] [ PURGE ] ; Polecenie powyższe usuwa definicję tabeli i dane z tabeli oraz wyzwalacze, indeksy związane z tabelą zwalnia fizyczny segment i jego rozszerzenia ustawia atrybut niepoprawności dla powiązanych perspektyw, synonimów, procedur itp. ALTER TABLE... Dodanie kolumn ; ALTER TABLE < nazwa_tabeli > ADD ( < nazwa_kol1 >< typ> [ DEFAULT < wyrażenie > ] [< więzy_kol1>] [, < nazwa_kol2 > <typ> [ DEFAULT < wyrażenie > ] [< więzy_kol2>]... ) ; Modyfikacja kolumn; ALTER TABLE < nazwa_tabeli > MODIFY ( < nazwa_kol1 > <typ> [ DEFAULT < wyrażenie > ] [< więzy_kol1>] [, < nazwa_kol2 > <typ>[ DEFAULT < wyrażenie > ] [< więzy_kol2>]... ) ; Usunięcie kolumn; ALTER TABLE < nazwa_tabeli > DROP COLUMN < nazwa_kol1 > ( < nazwa_kol1 > [, < nazwa_kol2 > ]... ) ; Zmiana nazwy kolumny; ALTER TABLE < nazwa_tabeli > RENAME COLUMN < stara_nazwa_kol > TO < nowa_nazwa_kol > ; ALTER TABLE Dzialy DROP COLUMN Lokalizacja; ALTER TABLE Kursy ADD ( Data_rozpoczecia DATE, Data_zakonczenia DATE ) ; ALTER TABLE Stanowiska MODIFY ( Stanowisko VARCHAR2(40)) ; 7

Modyfikacja ograniczeń ALTER TABLE < nazwa_tabeli > { ADD CONSTRAINT < nazwa_ograniczenia > PRIMARY KEY UNIQUE (< nazwa_kol1> ) [, UNIQUE ( <nazwa_kol2 > ] MODIFY CONSTRAINT < nazwa_ograniczenia > PRIMARY KEY UNIQUE (< nazwa_kol1> ) [, UNIQUE ( <nazwa_kol2 > ] RENAME CONSTRAINT < stara_nazwa > TO < nowa_nazwa > DROP { PRIMARY KEY UNIQUE ( < nazwa_kol1 > [, < nazwa_kol2]... ) [ CASCADE ] [KEEP DROP INDEX ] CONSTRAINT < nazwa_ograniczenia > [ CASCADE ] } ENABLE DISABLE { PRIMARY KEY CONSTRAINT < nazwa_ograniczenia > } } ; ALTER TABLE Mieszkancy ADD CONSTRAINT Nr_dok UNIQUE ( Nr_dokumentu ) ; ALTER TABLE Rachunki ENABLE PRIMARY KEY ; Perspektywa ( WIDOK ) - wirtualna tabela Intuicyjnie, perspektywa jest pewnego rodzaju oknem, przez które użytkownik bazy danych widzi udostępniane przez nią dane. perspektywa bazuje na tabelach, na innych perspektywach lub tabelach i perspektywach z użytkowego punktu widzenia, perspektywa posiada taką samą strukturę jak tabela na poziomie fizycznym różni się od tabeli tym, że nie posiada własnych danych w słowniku bazy danych (metadane ) perspektywa jest przechowywana w postaci zapytania ją definiującego Cele stosowania perspektyw ograniczenie i autoryzacja dostępu do danych ułatwienie pracy z danymi możliwość prezentowania tych samych danych w różny sposób zapewnienie logicznej niezależności danych poprzez odseparowanie aplikacji od schematu konceptualnego bazy danych możliwość wprowadzenia dodatkowego poziomu ograniczeń integralnościowych ( klauzula WITH CHECK OPTION ) CREATE [ OR REPLACE ] VIEW < nazwa > [ ( <lista_kolumn > ) ] AS SELECT... [{ WITH READ ONLY WITH CHECK OPTION }] ; 8

wyrażenia nie będące kolumnami, z klauzuli SELECT podzapytania, muszą być zaopatrzone w aliasy lub perspektywa musi przewidzieć nowe nazewnictwo wszystkich kolumn wyniku podzapytania istnieje możliwość modyfikacji danych za pośrednictwem pod warunkiem, że polecenie będzie dla systemu jednoznaczne ( uniemożliwiają to grupowanie, funkcje, złączenia, podzapytania, porządkowanie, DISTINCT, wyrażenia złożone, brak klucza głównego, brak uprawnień, ograniczenie WITH READ ONLY) opcja WITH CHECK OPTION umożliwia sprawdzenie, czy modyfikowane za pośrednictwem perspektywy dane spełniają warunki logiczne zawarte wewnątrz podzapytania perspektywy CREATE OR REPLACE VIEW Zespoly_pracownicze ( nazwa, liczba_prac ) AS SELECT nazwa, count(nr_akt) FROM Pracownicy RIGHT JOIN Dzialy USING (id_dzialu) GROUP BY nazwa; CREATE OR REPLACE VIEW Szefowie ( nazwisko, stanowisko, staz ) AS SELECT nazwisko, stanowisko, trunc(months_between(sysdate, data_zatr)/12) FROM Pracownicy WHERE nr_akt IN ( SELECT DISTINCT kierownik FROM Pracownicy ); CREATE OR REPLACE VIEW Wynagrodzenia AS SELECT p.nr_akt, p.nazwisko, p.stanowisko, p.placa FROM Pracownicy p WHERE p.placa < ( SELECT placa FROM Pracownicy WHERE nr_akt = p.kierownik ) WITH CHECK OPTION constraint za_wysokie_wynagrodzenie ; CREATE OR REPLACE VIEW Studentki AS SELECT nr_albumu, nazwisko, imiona,rok, rodzaj_studiow FROM Studenci WHERE imiona LIKE '%A' AND rok IS NOT NULL ORDER BY nazwisko ; SELECT * FROM Szefowie WHERE staz >= 20 AND stanowisko = 'DYREKTOR' SELECT * FROM Studentki WHERE rok= 2 AND rodzaj_studiow =' INŻ_ST'; Dodatkowe polecenia języka SQL dotyczące perspektyw: DESCRIBE < nazwa_perspektywy > DROP VIEW <nazwa_perspektywy > ; UPDATE Wynagrodzenia SET placa= 5500 WHERE nazwisko='malik'; SQL Error: ORA-01402: naruszenie klauzuli WHERE dla perspektywy z WITH CHECK OPTION 01402. 00000 - "view WITH CHECK OPTION where-clause violation" 9

INSERT INTO Szefowie VALUES ('OLEJNIK','RADCA',null); SQL Error: ORA-01733: w tym miejscu kolumna wirtualna nie jest dozwolona 01733. 00000 - "virtual column not allowed here" Metadane ( perspektywy słownikowe ) - informacje na temat struktury bazy danych, zawartych w niej obiektów, kontach użytkowników, uprawnieniach, itp. Przedrostki perspektyw słownika danych: USER_ obiekty posiadane przez użytkownika, ALL_ obiekty, do których użytkownik ma dostęp, DBA_ obiekty całej bazy danych Wybrane perspektywy słownika dla: tabel: %_TABLES ograniczeń: %_CONSTRAINTS kolumn z ograniczeniami: %_CONS_COLUMNS perspektyw: %_VIEWS aktualizacji perspektyw: %_UPDATABLE_COLUMNS indeksów: %_INDEXES sekwencji: %_SEQUENCES obiektów: %_OBJECTS SELECT table_name,constraint_name, constraint_type,column_name FROM USER_CONSTRAINTS NATURAL JOIN USER_CONS_COLUMNS; SELECT * FROM USER_UPDATABLE_COLUMNS; SELECT Object_name, Object_type, Created, Status FROM USER_OBJECTS; Wykorzystano Wykłady dr inż. Olga Siedlecka-Lamch - Bazy danych z roku 2012 http://wazniak.mimuw.edu.pl/images/c/c7/bd-2st-1.2-w03.tresc-1.1.pdf 10