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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 - - Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 20 października /59

2 Plan wykładu /59

3 Polecenie UPDATE I - Polecenie UPDATE służy do aktualizacji zawartości wierszy tabel. W klauzuli SET wymieniamy atrybuty, których wartości będą zmieniane. Opcjonalna klauzula WHERE wyznacza kryterium, jakie muszą spełnić wiersze tabeli aby podlegać zmianie. Brak ograniczającego warunku oznacza, że wszystkie wiersze będą zmienione. Składnia: UPDATE {tabela perspektywa} SET {{atrybut = wartosc DEFAULT NULL (SELECT...)}, {atrybut = wartosc DEFAULT NULL (SELECT...)},...} [WHERE predykat]; - 3/59

4 Polecenie UPDATE II - Przykłady: UPDATE pracownicy SET placa = placa * 1.1; UPDATE pracownicy SET placa = placa * 1.1 WHERE nr_akt IN (SELECT kierownik FROM pracownicy); - 4/59

5 Polecenie INSERT I - Polecenie INSERT pozwala wstawiać do tabeli nowe wiersze. Opcjonalnie można określić listę uzupełnianych atrybutów, w przeciwnym razie należy wypełnić wszystkie. Klauzula VALUES określa wartości jakie będą przypisane atrybutom. Wiersz można wypełnić wartościami zwróconymi przez podzapytanie. Składnia: INSERT INTO {tabela perspektywa (SELECT...)} [(atrybut1 [,...] )] {DEFAULT VALUES VALUES (wartosc1 [,...]) SELECT... }; - 5/59

6 - 6/59 Polecenie INSERT II - Przykłady: INSERT INTO dzialy VALUES (10, 'ZARZAD', 'CZESTOCHOWA'); INSERT INTO pracownicy VALUES (9121, 'KUKULSKI', 'DYREKTOR', 8901, To_date('1991/04/02','yyyy/mm/dd'), NULL, 5000, 1500, NULL, 30); INSERT INTO pracownicy (nr_akt, nazwisko) VALUES (9192, 'KOWALSKI'); INSERT INTO prac_archiw SELECT * FROM pracownicy WHERE nr_akt = 9192;

7 Tworzenie skryptu - INSERT INTO dzialy VALUES (&id_dzialu, &nazwa, &siedziba); - 7/59

8 Podzapytanie jako cel I - Pozwala uniknąć tworzenia perspektyw tylko w celu wstawiania : INSERT INTO (SELECT l.id_lok, l.miasto, l.id_kraju FROM lokalizacje l JOIN kraje k ON (l.id_kraju = k.id_kraju) JOIN regiony USING (id_regionu) WHERE nazwa_regionu = 'Europa') VALUES (2500, 'Częstochowa', 'PL'); - 8/59

9 - 9/59 Podzapytanie jako cel II - INSERT INTO (SELECT id_lok, miasto, id_kraju FROM lokalizacje WHERE id_kraju IN (SELECT id_kraju FROM kraje NATURAL JOIN regiony WHERE nazwa_regionu = 'Europa') WITH CHECK OPTION) VALUES (2500, 'Częstochowa', 'PL');

10 INSERT wielowierszowy - Użyj INSERT... SELECT celem wstawienia wielu wierszy do wielu tabel wielowierszowy (multitablicowy) INSERT jest często wykorzystywany w hurtowniach polecenie jest wydajniejsze od pojedyńczych wstawień i wstawień z wykorzystaniem składni IF... THEN typy: bezwarunkowy INSERT warunkowy INSERT ALL warunkowy INSERT FIRST obrotowy INSERT - 10/59

11 INSERT wielowierszowy - składnia - Składnia: INSERT [conditional_insert_clause] [insert_into_clause values_clause] (SELECT...) Składnia conditional_insert_clause: [ALL FIRST] [WHEN condition THEN] [insert_into_clause values_clause] [ELSE] [insert_into_clause values_clause] - 11/59

12 bezwarunkowy INSERT - INSERT ALL INTO historia_plac VALUES (prac_id, datazatr, placapod) INTO historia_kier VALUES (prac_id, kier_id, placapod) SELECT nr_akt prac_id, data_zatr datazatr, placa placa_pod, kierownik kier_id FROM pracownicy WHERE nr_akt > 200; - 12/59

13 warunkowy INSERT ALL - INSERT ALL WHEN datazatr < To_date(' ','DD-MM-YYYY') THEN INTO historia_prac VALUES (prac_id, datazatr, placapod) WHEN prow IS NOT NULL THEN INTO historia_plac VALUES (prac_id, placapod, prow) SELECT nr_akt prac_id, data_zatr datazatr, placa placa_pod, prowizja prow FROM pracownicy; - 13/59

14 warunkowy INSERT FIRST - INSERT FIRST WHEN placa < 1900 THEN INTO niskieplace VALUES (nr_akt, nazwisko, placa) WHEN placa BETWEEN 1900 AND 4000 THEN INTO srednieplace VALUES (nr_akt, nazwisko, placa) ELSE INTO wysokieplace VALUES (nr_akt, nazwisko, placa) SELECT nr_akt, nazwisko, placa FROM pracownicy; - 14/59

15 obrotowy INSERT - Każda krotka relacji wejściowej jest transformowana ( obracana ) tak by utworzyć wiele wierszy wyjściowych - szczególny przykład operacji bezwarunkowej. Instrukcja przydatna przy transformacji obiektowo-relacyjnej. INSERT ALL INTO place VALUES (nr_akt, id_tyg, pl_pon) INTO place VALUES (nr_akt, id_tyg, pl_wt) INTO place VALUES (nr_akt, id_tyg, pl_sr) INTO place VALUES (nr_akt, id_tyg, pl_czw) INTO place VALUES (nr_akt, id_tyg, pl_pt) INTO place VALUES (nr_akt, id_tyg, pl_nad) SELECT nr_akt, id_tyg, pl_pon, pl_wt, pl_sr, pl_czw, pl_pt, pl_nad FROM place_tygodniowe; - 15/59

16 Polecenie DELETE - Polecenie DELETE usuwa wiersze ze wskazanej tabeli, zawiera opcjonalną klauzule WHERE ograniczającą liczbę usuniętych wierszy do tych, które spełniają zadany warunek. Składnia: DELETE FROM {tabela perspektywa} [WHERE warunek]; Przykłady: DELETE FROM stanowiska; DELETE FROM pracownicy WHERE nr_akt = 9192; - 16/59

17 Polecenie MERGE - Polecenie MERGE polecenie umożliwiające wykonanie warunkowej modyfikacji, wstawienia lub kasowania. Pozwala uniknąć oddzielnych modyfikacji, podwyższa wydajność, ułatwia złożone modyfikacje. Składnia: MERGE INTO table_name table_alias USING (table view subquery) alias ON (join condition) WHEN MATCHED THEN UPDATE SET atr1 = val1 [,atr2 = val2 [,...]] DELETE... WHEN NOT MATCHED THEN INSERT...; - 17/59

18 - 18/59 SQL DDL - Dla baz narzędziem fizycznej realizacji będzie część SQL a nazywana DDL (ang. Data Definition Language) zawierająca niezbędne polecenia do tworzenia (CREATE), usuwania (DROP) i modyfikacji (ALTER). Nigdy nie należy mylić poleceń DML i DDL: DML INSERT UPDATE DELETE DDL CREATE ALTER DROP

19 CREATE TABLE - Składnia polecenia CREATE TABLE: CREATE [GLOBAL TEMPORARY] TABLE [schemat.]table_name { relational_table object_table XMLType_table }; - 19/59

20 Tworzenie tabeli relacyjnej - CREATE [GLOBAL TEMPORARY] TABLE [schemat.]table_name [ (relational_properties) ] [ ON COMMIT { DELETE PRESERVE } ROWS ] [ physical_properties ] [ table_properties ]; - 20/59

21 - 21/59 CREATE TABLE - własności relacyjne - Definicja kolumn - własności tabeli: column datatype [ SORT ] [ DEFAULT expr ] [ ENCRYPT encryption_spec ] [ ( { inline_constraint }... ) inline_ref_constraint ] Np.: CREATE TABLE mieszkancy ( PESEL NUMBER(11), nazwisko VARCHAR2(30), imiona VARCHAR2(30), data_zameldowania DATE DEFAULT CURRENT_DATE );

22 CREATE TABLE - tabela obiektowa - OF [ schema. ] object_type [ object_table_substitution ] [ (object_properties) ] [ ON COMMIT { DELETE PRESERVE } ROWS ] [ OID_clause ] [ OID_index_clause ] [ physical_properties ] [ table_properties ] Przykład: CREATE TABLE departments_obj_t OF department_type; Tabela obiektowa departments obj t przechowuje typu department type. - 22/59

23 CREATE TABLE - tabela obiektowa - Definicja typu i odpowiadającej mu tabeli obiektowej, w której identyfikator obiektu staje się kluczem głównym: CREATE TYPE employees_typ AS OBJECT (e_no NUMBER, e_address CHAR(30)); / CREATE TABLE employees_obj_t OF employees_typ (e_no PRIMARY KEY) OBJECT IDENTIFIER IS PRIMARY KEY; - 23/59

24 CREATE TABLE - XMLType - OF XMLTYPE [ (oject_properties) ] [ XMLTYPE XMLType_storage ] [ XMLSchema_spec ] [ XMLType_virtual_columns ] [ ON COMMIT { DELETE PRESERVE } ROWS ] [ OID_clause ] [ OID_index_clause ] [ physical_properties ] [ table_properties ] Przykład: CREATE TABLE xwarehouses OF XMLTYPE XMLSCHEMA " ELEMENT "Warehouse"; - 24/59

25 CREATE TABLE - własności fizyczne - { segment_attributes_clause [ table_compression ] ORGANIZATION { HEAP [ segment_attributes_clause ] [ table_compression ] INDEX [ segment_attributes_clause ] index_org_table_clause EXTERNAL external_table_clause } CLUSTER cluster (column [, column ]...) } - 25/59

26 - 26/59 CREATE TABLE - przykłady - CREATE TABLE demo ( id NUMBER(10) ) TABLESPACE przyklad STORAGE (INITIAL 6144); CREATE TABLE dzialy ( id NUMBER(2) PRIMARY KEY, nazwa VARCHAR(50), lokalizacja VARCHAR(20) ) ORGANIZATION INDEX PCTTHRESHOLD 30 OVERFLOW TABLESPACE nadmiar;

27 CREATE TABLE - własności tabeli - Własności tabeli: [ column_properties ] [ table_partitioning_clauses ] [ CACHE NOCACHE ] [ parallel_clause ] [ ROWDEPENDENCIES NOROWDEPENDENCIES ] [ MONITORING NOMONITORING] [ enable_disable_clause ]... [ row_movement_clause ] [ flashback_archive_clause ] [ AS subquery ] - 27/59

28 - 28/59 CREATE TABLE - przykłady - CREATE TABLE klienci ( id NUMBER(6), nazwisko VARCHAR2(30), imiona VARCHAR2(30), adres VARCHAR2(200), nls VARCHAR2(30), VARCHAR2(30) ) PARTITION BY LIST (nls) ( PARTITION azja VALUES ('CHINY', 'TAJLANDIA'), PARTITION europa VALUES ('NIEMCY', 'WLOCHY'), PARTITION zachod VALUES ('USA'), PARTITION wschod VALUES ('ROSJA'), PARTITION reszta VALUES (DEFAULT) );

29 - 29/59 CREATE TABLE - przykłady - CREATE TABLE klienci ( id NUMBER(6), naziwsko VARCHAR2(30), imiona VARCHAR2(30), adres VARCHAR2(200), rok_zal NUMBER(4), VARCHAR2(30) ) PARTITION BY RANGE (rok_zal) ( PARTITION rok_2000 VALUES LESS THAN (2000), PARTITION rok_2004 VALUES LESS THAN (2004), PARTITION rok_2008 VALUES LESS THAN (2008), PARTITION rok_2012 VALUES LESS THAN (2012) ); CREATE TABLE pracownicy_archiwalni AS SELECT * FROM pracownicy WHERE data_zwol IS NOT NULL;

30 DROP TABLE - Usuwanie tabeli: DROP TABLE [schemat.]nazwa_tabeli [CASCADE CONSTRAINTS][PURGE]; usunięcie definicji tabeli usunięcie z tabeli - wszystkich krotek usunięcie wyzwalaczy i indeksów związanych z tabelą zwolnienie fizycznego segmentu i jego rozszerzeń ustawienie atrybutu niepoprawności dla powiązanych perspektyw, synonimów, procedur, itp. - 30/59

31 Polecenie TRUNCATE - Polecenie TRUNCATE usuwa wszystkie krotki tabeli pozostawiając ę nienaruszoną. Składnia: TRUNCATE TABLE nazwa_tabeli; - 31/59

32 Definiowanie ograniczeń - Sposoby definicji ograniczeń: ograniczenia kolumny - definiowane inline lub out of line (za wyjatkiem NOT NULL) ograniczenia tabeli - definiowane out of line nazwane przez użytkownika nazwane przez system ograniczenia tworzone w trakcie tworzenia y tabeli ( inline lub out of line ) ograniczenia tworzone po utworzeniu tabeli poprzez poprawianie jej y (wyłącznie out of line ) - 32/59

33 Typy ograniczeń - Typy ograniczeń: NOT NULL - wartość obowiązkowa CHECK (warunek_logiczny) - wartość spełniająca narzucony warunek UNIQUE - wartość niepowtarzalna, jednoznaczna PRIMARY KEY - klucz główny FOREIGN KEY, REFERENCES - klucz obcy mechanizm integralności oparty na wyzwalaczach - 33/59

34 CONSTRAINT inline - Definicja ograniczeń inline : CREATE TABLE nazwa_tabeli ( kol1 typ[(rozmiar)] [DEFAULT wyrazenie1][sort] [[CONSTRAINT nazwa_ogr_kolumny] { [NOT] NULL UNIQUE PRIMARY KEY REFERENCES tabela(kol1 [, kol2]...) [ON DELETE { CASCADE SET NULL }] CHECK (warunek_logiczny) } [DISABLE ENABLE] [USING INDEX { [schemat.]indeks (create_index_statement) wlasnosci_indeksu } ]],... ); - 34/59

35 CONSTRAINT out of line - Definicja ograniczeń out of line : CREATE TABLE nazwa_tabeli (..., [[CONSTRAINT nazwa_ogr_tabeli] { UNIQUE ( kol1 [, kol2]... ) PRIMARY KEY ( kol1 [, kol2]...) FOREIGN KEY ( kol1 [, kol2]...) REFERENCES tabela(kol1 [,kol2]...) [ON DELETE { CASCADE SET NULL }] CHECK (warunek_logiczny) } [DISABLE ENABLE] [USING INDEX { [schemat.]indeks (create_index_statement) wlasnosci_indeksu }],...); - 35/59

36 - 36/59 NOT NULL - NOT NULL - dla kolumn o wartościach obowiązkowych. CREATE TABLE osoby( nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE CONSTRAINT data_nn NOT NULL,... );

37 - 37/59 CHECK - CHECK - wartości kolumny dla każdego wiersza spełnią zadany warunek (warunek nie może zawierać podzapytań, ani funkcji zmiennych w czasie). CREATE TABLE osoby( nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE CONSTRAINT data_nn NOT NULL, plec CHAR(1) CHECK (plec IN ('K','M')), wiek NUMBER(3),..., CONSTRAINT wiek_ch CHECK (wiek BETWEEN 0 AND 120) );

38 - 38/59 UNIQUE - UNIQUE - wartości w kolumnie będą niepowtarzalne. CREATE TABLE osoby( pesel NUMBER(11) CONSTRAINT pesel_u UNIQUE, nip NUMBER(10), nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE CONSTRAINT data_nn NOT NULL,..., UNIQUE(nip) );

39 PRIMARY KEY I - PRIMARY KEY - więzy klucza głównego oznaczają, że kolumna/kolumny przyjmą wartości jednoznaczne i niepuste. Dla klucza głównego tworzony jest automatycznie indeks. CREATE TABLE mieszkancy( pesel NUMBER(11) PRIMARY KEY nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE NOT NULL, nr_dokumentu VARCHAR2(20) ); - 39/59

40 - 40/59 PRIMARY KEY II - CREATE TABLE mieszkancy( pesel NUMBER(11) CONSTRAINT mieszy_pk PRIMARY KEY, nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE NOT NULL, nr_dokumentu VARCHAR2(20) ); CREATE TABLE mieszkancy( pesel NUMBER(11), nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE NOT NULL, nr_dokumentu VARCHAR2(20), PRIMARY KEY (pesel) ); CREATE TABLE mieszkancy( pesel NUMBER(11), nazwisko VARCHAR2(30) NOT NULL, data_urodzenia DATE NOT NULL, nr_dokumentu VARCHAR2(20), CONSTRAINT mieszy_pk PRIMARY KEY (pesel) );

41 - 41/59 FOREIGN KEY I - FOREIGN KEY - więzy klucza obcego - wartości z kolumn klucza istnieją we wcześniej zdefiniowanym kluczu kandydującym innej lub tej samej tabeli (może przyjąć wartość pustą). CREATE TABLE rachunki( nr_rachunku NUMBER(10) PRIMARY KEY, kwota NUMBER(6,2) NOT NULL, termin DATE, odsetki NUMBER(6,2), id_mieszkania NUMBER(10) REFERENCES mieszkania(id_mieszkania) );

42 FOREIGN KEY II - CREATE TABLE rachunki(..., id_mieszkania NUMBER(10) CONSTRAINT rach_fk REFERENCES mieszkania(id_mieszkania) ); CREATE TABLE rachunki(..., id_mieszkania NUMBER(10), FOREIGN KEY (id_mieszkania) REFERENCES mieszkania(id_mieszkania) ); CREATE TABLE rachunki(..., id_mieszkania NUMBER(10), CONSTRAINT rach_fk FOREIGN KEY (id_mieszkania) REFERENCES mieszkania(id_mieszkania) ); - 42/59

43 FOREIGN KEY III - Opcje ON DELETE SET NULL i ON DELETE CASCADE CREATE TABLE rachunki(..., id_mieszkania NUMBER(10), CONSTRAINT rach_fk FOREIGN KEY (id_mieszkania) REFERENCES mieszkania(id_mieszkania) ON DELETE SET NULL ); CREATE TABLE rachunki(..., id_mieszkania NUMBER(10), CONSTRAINT rach_fk FOREIGN KEY (id_mieszkania) REFERENCES mieszkania(id_mieszkania) ON DELETE CASCADE ); - 43/59

44 ALTER TABLE I - ALTER TABLE - polecenie umożliwiające wprowadzenie zmian do istniejącej y logicznej i cech fizycznych tabeli. Niektóre możliwości ALTER TABLE: ADD - dodanie kolumn lub ograniczeń MODIFY - istniejących kolumn lub ograniczeń DROP - usunięcie kolumn lub ograniczeń RENAME - zmiana nazwy tabeli, kolumny lub ograniczeń ENABLE - włączenie ograniczenia DISABLE - wyłączenie ograniczenia i wiele innych /59

45 ALTER TABLE - zmiany kolumn I - Dodanie kolumn: ALTER TABLE nazwa_tabeli ADD (kol1 typ [DEFAULT wyrazenie] [wiezy_kol1]) [, (kol2 typ [DEFAULT wyrazenie] [wiezy_kol2])]... ; ALTER TABLE rachunki ADD (id_mieszkanca NUMBER(10) REFERENCES mieszkancy(id_mieszkanca)); Zmiana kolumn: ALTER TABLE nazwa_tabeli MODIFY (kol1 [typ] [DEFAULT wyrazenie] [wiezy_kol1]) [, (kol2 [typ] [DEFAULT wyrazenie] [wiezy_kol2])]... ; ALTER TABLE rachunki MODIFY (nr_rachunku NUMBER(12)); - 45/59

46 ALTER TABLE - zmiany kolumn II - Usunięcie kolumn: ALTER TABLE nazwa_tabeli DROP COLUMN kol1 ( kol1 [, kol2]... ) ; ALTER TABLE rachunki DROP COLUMN id_mieszkanca; Zmiana nazwy: ALTER TABLE nazwa_tabeli RENAME COLUMN stara_nazwa TO nowa_nazwa; ALTER TABLE rachunki RENAME COLUMN id_rachunku TO nr_rachunku; - 46/59

47 - 47/59 ALTER TABLE - ograniczenia I - Modyfikacja ograniczeń:: ALTER TABLE nazwa_tabeli { ADD CONSTRAINT nazwa_ograniczenia PRIMARY KEY UNIQUE (kol1) [, UNIQUE (kol2) ] MODIFY CONSTRAINT nazwa_ograniczenia PRIMARY KEY UNIQUE (kol1) [, UNIQUE (kol2) ]... RENAME CONSTRAINT stara_nazwa TO nowa_nazwa DROP PRIMARY KEY UNIQUE ( kol1 [, kol2]... )... [CASCADE] [ KEEP DROP INDEX] CONSTRAINT nazwa_ograniczenia [CASCADE]; ENABLE DISABLE UNIQUE ( kol1 [, kol2]... ) PRIMARY KEY CONSTRAINT nazwa_ograniczenia Np.: ALTER TABLE mieszkancy ADD CONSTRAINT nr_dok_u UNIQUE (nr_dokumentu);

48 Indeksy - Indeks może być tworzony jawnie lub niejawnie. Jawnie jest realizowany przez użytkownika poleceniem CREATE INDEX: CREATE [UNIQUE BITMAP] INDEX nazwa_indeksu ON nazwa_tabeli (kol1 [ASC DESC] [, kol2 [ASC DESC]]); niejawnie może być automatycznie zakładany przez system, np. dla klucza głównego. Modyfikacja indeksu: ALTER INDEX stara_nazwa TO nowa_nazwa; ALTER INDEX nazwa REBUILD; Usuwanie indeksów: DROP INDEX nazwa; - 48/59

49 Klastry I - Tworzenie kontenera na tabele odbywa się za pomocą polecenia CREATE CLUSTER: CREATE CLUSTER [ schema. ] cluster (column datatype [ SORT ] [, column datatype [ SORT ] ]... ) [ { physical_attributes_clause SIZE size_clause TABLESPACE tablespace { INDEX [ SINGLE TABLE ] HASHKEYS integer [ HASH IS expr ] } }... ] [ parallel_clause ] [ NOROWDEPENDENCIES ROWDEPENDENCIES ] [ CACHE NOCACHE ] ; - 49/59

50 Klastry II - Np.: CREATE CLUSTER prac_dzialu_cl (nazwa VARCHAR2(20), id_dzialu NUMBER(2), nazwisko VARCHAR2(30)) SIZE 500 TABLESPACE users; - 50/59

51 I - widoki, wirtualne tabele - reprezentujące wybraną zawartość tabel lub innych perspektyw nie składowane fizycznie na dysku, generowane przy każdym wywołaniu nazwy 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 - 51/59

52 II - istnieje możliwość modyfikacji za pośrednictwem perspektyw pod warunkiem, że polecenie będzie dla systemu jednoznaczne (uniemożliwiają to grupowania, funkcje, podzapytania, porządkowanie, DISTINCT, wyrażenia złożone, brak klucza głównego i atrybutów obowiązkowych, 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 - 52/59

53 CREATE VIEW - tworzy się za pomocą polecenia CREATE VIEW: CREATE [OR REPLACE] [[NO] FORCE] VIEW [schema.] view [ ( { alias [ inline_constraint... ] out_of_line_constraint } [, { alias [ inline_constraint...] out_of_line_constraint } ] ) object_view_clause XMLType_view_clause ] AS subquery [WITH CHECK OPTION WITH READ ONLY]; - 53/59

54 CREATE VIEW - przykład - CREATE OR REPLACE VIEW szefowie AS SELECT * FROM pracownicy WHERE nr_akt IN (SELECT kierownik FROM pracownicy) CREATE VIEW studentki AS SELECT * FROM studenci WHERE imiona LIKE '%A' WITH CHECK OPTION; - 54/59

55 Sekwencje - Sekwencje tworzy się za pomocą polecenia CREATE SEQUENCE: CREATE SEQUENCE nazwa [START WITH st] [INCREMENT BY i] [MAXVALUE max] [MINVALUE min] [CYCLE NOCYCLE] [CACHE c NOCACHE]; CREATE SEQUENCE nr_akt_seq START WITH 9200 INCREMENT BY 10; st min i st max i 0, może przyjmować wartości ujemne, i < (max min) c 2, c < (Ceil(max min)/abs(i)), domyślnie c = 20 nazwa.currval - określa aktualną wartość w sekwencji nazwa.nextval - określa następną wartość w sekwencji - 55/59

56 Synonimy - Synonimy to alternatywna nazwa dla tabel, perspektyw, sekwencji, operatorów, procedur, funkcji, pakietów, materializowanych perspektyw, obiektów Java, typów użytkownika, lub innych synonimów. Synonim staje się niepoprawny jeżeli obiekt na który wskazuje został zmieniony lub zniszczony. Synonimy tworzy się za pomocą polecenia CREATE SYNONYM: CREATE [PUBLIC] SYNONYM nazwa FOR [schemat.]nazwa_ob; CREATE PUBLIC SYNONYM pracownicy FOR scott.emp; - 56/59

57 Słownik - Słownik zbiór tabel i perspektyw systemowych przechowujących informacje (metadane) na temat y bazy, zawartych w niej obiektów, kontach użytkowników, uprawnieniach, itp.. Użytkownicy mają jedynie możliwość oglądania zawartości perspektyw w czytelnej formie. Przedrostki perspektyw : USER_ - posiadane przez użytkownika ALL_ -, do których użytkownik ma dostęp DBA_ - całej bazy (informacje wykorzystywane w administracji) SELECT table_name FROM user_tables; - 57/59

58 Pespektywy - Wybrane perspektywy dla tabel: %_TABLES, %_CONSTRAINTS, %_CONS_COLUMNS indeksów: %_INDEXES, %_IND_COLUMNS klastrów: %_CLUSTERS, %_CLU_COLUMNS perspektyw: %_VIEWS, %_UPDATABLE_COLUMNS sekwencji: %_SEQUENCES synonimów: %_SYNONYMS innych obiektów: %_CATALOG, %_DEPENDENCIES, %_ERRORS, %_LOCKS, %_OBJECTS, %_ROLES, %_SOURCE, %_TABLESPACES, %_TRIGGERS, %_TYPES, /59

59 - W wykładzie wykorzystano materiały: nav/sql_keywords.htm?remark=homepage M. Lentner, Oracle 9i Kompletny podręcznik użytkownika, PJWSTK - W-wa, Bazy_ Garcia-Molina, Ullman, Widom: Implementacja systemów baz, WNT /59

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

1 DML - modyfikacja 1. 2 DDL - definicja struktur Definiowanie tabel Więzy integralności Modyfikacja definicji... Plan wykładu Spis treści 1 DML - modyfikacja 1 2 DDL - definicja struktur 5 2.1 Definiowanie tabel............................... 5 2.2 Więzy integralności............................... 9 2.3 Modyfikacja

Bardziej szczegółowo

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

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12 Plan wykładu Spis treści 1 Projekt fizyczny 1 2 Transformacja ML do PF 2 2.1 Definiowanie tabel............................... 2 2.2 Więzy integralności............................... 4 2.3 Modyfikacja

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów VIII

Bazy danych - Materiały do laboratoriów VIII Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie

Bardziej szczegółowo

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym. Modele - konceptualne reprezentacja obiektów w

Bardziej szczegółowo

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

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

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

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

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

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli SPOOL moj_plik SPOOL OFF @ moj_ plik edit CREATE TABLE DESCRIBE ALTER TABLE RENAME DROP TABLE CONNECT CONNECT USER_NAME DISCONNECT EXIT zapisuje wszystkie wydane polecenia oraz ich wyniki do pliku moj_plik,

Bardziej szczegółowo

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

Bardziej szczegółowo

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

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania

Bardziej szczegółowo

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

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

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

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

Bardziej szczegółowo

Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie

Bardziej szczegółowo

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

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane

Bardziej szczegółowo

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

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu. Plan wykładu Spis treści 1 Dynamiczny SQL 1 2 Wyzwalacze 2 3 Podsumowanie 9 4 Źródła 9 1 Dynamiczny SQL Dynamiczny SQL Dynamiczny SQL - technika programowania umożliwiająca generowanie instrukcji SQL dynamicznie

Bardziej szczegółowo

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

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń PL/SQL Zaawansowane tematy PL/SQL Piotr Medoń Cele Omówienie transakcji bazodanowych Omówienie obsługi wyjątków Zarządzanie perspektywami Tworzenie i usuwanie sekwencji Budowa wyzwalaczy 2 Transakcje bazodanowe

Bardziej szczegółowo

Wykład 2. SQL 1 Structured Query Lenguage

Wykład 2. SQL 1 Structured Query Lenguage Wykład 2 SQL 1 Structured Query Lenguage SQL (Structured Query Language) Język zapytań do bazy danych. IBM lata osiemdziesiąte. Stosowany w systemach zarządzania bazami danych (DBMS); Oracle, Paradox,Access,

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

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

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)

Bardziej szczegółowo

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

Aspekty aktywne baz danych

Aspekty aktywne baz danych Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów PODSTAWY BAZ DANYCH Wykład 10 8. Partycjonowanie tabel i indeksów 2005/2006 Wykład "Podstawy baz danych" 1 Partycjonowanie tabel i indeksów w Oracle W celu poprawienia efektywności dostępu do danych oraz

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 10. Partycjonowanie tabel i indeksów 1 Partycjonowanie tabel i indeksów w Oracle W celu poprawienia efektywności dostępu do danych oraz ułatwieniu zarządzania bardzo dużymi zbiorami

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

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

Bazy danych 6. Klucze obce. P. F. Góra Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:

Bardziej szczegółowo

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2. Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Uprawnienia, role, synonimy

Uprawnienia, role, synonimy Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

SQL - DDL. 1 Tabele systemowe. 2 Typy danych SQL - DDL DDL (ang. data definition language) jest częścią języka zapytań SQL obejmująca tworzenie i zarządzanie (modyfikację, usuwanie i przydzielanie uprawnień) obiektami w bazie danych (tabelami, perspektywami,

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Bazy danych Ćwiczenia projektowe

Bazy danych Ćwiczenia projektowe Bazy danych Ćwiczenia projektowe Przygotował: Piotr Hajder Katedra Informatyki Stosowanej i Modelowania Wydział Inżynierii Metali i Informatyki Przemysłowej, AGH Agenda 01. Typy danych 02. Polecenia DDL

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

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

Język SQL. Rozdział 8. Język manipulowania danymi DML Język SQL. Rozdział 8. Język manipulowania danymi DML Wstawianie danych i polecenie INSERT, modyfikowanie danych i polecenie UPDATE, usuwanie danych i polecenie DELETE, połączenia modyfikowalne, sekwencje.

Bardziej szczegółowo

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

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL Bazy danych 2 Wykład 5 Structured Query Language (SQL) c.d. DDL Dziedzina (DOMAIN) Dziedzina to zdefiniowany przez uŝytkownika zbiór dopuszczalnych wartości definiowany niezaleŝnie od definicji tabel Składnia

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

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

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład szósty Więzy i wyzwalacze Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa szósty Więzy i wyzwalacze 1 / 35 Wstęp Wiemy jak nakładać pewne ograniczenia (więzy) w

Bardziej szczegółowo

Technologie baz danych WYKŁAD 7: Wyjątki

Technologie baz danych WYKŁAD 7: Wyjątki Wydział Informatyki Politechnika Białostocka Obsługa wyjątków Technologie baz danych WYKŁAD 7: Wyjątki [] [] Agnieszka Oniśko, Małgorzata Krętowska TBD-wyjątki 1 TBD-wyjątki 2 Sposoby powstania sytuacji

Bardziej szczegółowo

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Język PL/SQL. Rozdział 6. Procedury wyzwalane Język PL/SQL. Rozdział 6. Procedury wyzwalane Procedury wyzwalane, cele stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie

Bardziej szczegółowo

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1) Tworzenie relacji polecenie CREATE TABLE Rozdział 6 Język definiowania danych DDL CREATE TABLE nazwa_relacji (nazwa_atrybutu typ (rozmiar) [DEFAULT wartość_domyślna] [ [CONSTRAINT nazwa_ogr] ograniczenie_atr],

Bardziej szczegółowo

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1) Tworzenie relacji polecenie CREATE TABLE Rozdział 6 Język definiowania danych DDL CREATE TABLE nazwa_relacji (nazwa_atrybutu typ (rozmiar) [DEFAULT wartość_domyślna] [ [CONSTRAINT nazwa_ogr] ograniczenie_atr],

Bardziej szczegółowo

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

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99 Plan ćwiczenia Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych Użytkownicy i schematy bazy danych. Uwierzytelnianie i autoryzacja. Przywileje systemowe i obiektowe. Role. Synonimy. Uprawnienia,

Bardziej szczegółowo

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

Język zapytań SQL- język relacyjnych baz danych Język SQL Język zapytań SQL- język relacyjnych baz danych SQL (Structured Query Language),czyli Strukturalny Język Zapytań. SQL jest standardowym językiem do kierowania poleceń do relacyjnej bazy danych

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML Procedury wyzwalane Rozdział 13 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie

Bardziej szczegółowo

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

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

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się

Bardziej szczegółowo

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

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

Bardziej szczegółowo

1. Wyzwalacze BD (ang. triggers)

1. Wyzwalacze BD (ang. triggers) 1. Wyzwalacze BD (ang. triggers) Wyzwalacz bazy danych jest procedurą składowaną w bazie powiązaną z jedną konkretną tablicą. Z pojedynczą tablicą może być związane wiele wyzwalaczy, natomiast pojedynczy

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

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

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

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

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Widoki/Perspektywy Podstawy Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Usuwanie widoku DROP VIEW [nazwa_widoku]; Przykład 1 Przykład najprostszego

Bardziej szczegółowo

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Wykorzystanie SQL w PL/SQL Kursory Wyjątki Projekt fizyczny bazy danych Braki projektu

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.

Bardziej szczegółowo

SQL język zapytań (query language) cz.1

SQL język zapytań (query language) cz.1 SQL język zapytań (query language) cz.1 Zapytanie SELECT - podstawy (3) SELECT A 1,A 2,...,A k (1) FROM R 1,R 2,,R n -- lista wyboru (atrybutów) -- relacje (lista FROM) (2) WHERE F -- warunek wyboru (selekcji)

Bardziej szczegółowo

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

SQL w praktyce. Miłej i owocnej nauki!!!

SQL w praktyce. Miłej i owocnej nauki!!! SQL w praktyce Niniejsza praca objęta jest prawami autorskimi. Nielegalne jest kopiowanie żadnej częsci tej pracy w żadnej postaci. Niezgodne z prawem tym bardziej jest udostępnianie innym tej pracy odpłatnie

Bardziej szczegółowo

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

Zarzadzanie transakcjami. Transakcje

Zarzadzanie transakcjami. Transakcje Transakcje Transakcja: ciąg zawierający jedno lub wiele poleceń SQL, zgrupowanych razem jako jedna logiczna jednostka działań, której nie można podzielić. Logiczna jednostka działań to zbiór logicznych

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

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

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

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

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo