IBM DB2 cechy warte odnotowania

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

Download "IBM DB2 cechy warte odnotowania"

Transkrypt

1 IBM DB2 cechy warte odnotowania v v v v v v Różne typy tabel w tym MDC - wielowymiarowe Podział jednej bazy danych na niezależne partycje nie tylko pojedynczej tabeli Łączenie pokrewnych instrukcji w jedną w celu zwiększenia wydajności Nadtabela i jej podtabele - oprócz typów i podtypów Możliwość przekazywania z procedury zbiorów wynikowych wierszy poprzez otwarte kursory również do aplikacji Autoryzacja przyznanym poziomem dostępu do tabel, kolumn i wierszy Label Based Access Control (LBAC) 1/125

2 Bibliografia Przygotowane w oparciu o: materiały szkoleniowe używane przez Artura Wrońskiego (IBM) i E. Mrówkę-Matejewską; Graeme Birchall, UDB V8.2 SQL Cookbook - dostępna w Internecie i w katalogu z prezentacją; materiały edukacyjne firmy IBM: DB2 v9 Fundamentals, DB2 SQL Workshop, DB2 SQLWorkshop for Experienced Users, DB2 v9 Admin Workshop for Windows, DB2 v8 Stored Procedures Programming Workshop dostępne w katalogu z prezentacją Dokumentacja: Raul F.Chong,.. Zrozumieć DB2, IBM Press, Mikom, PWN /125

3 DB2 Editions M assively P arallel P rocessor (M PP ) DB2 C luster E nterprise S erver E dition w ith D ata P artitioning Feature E nterprise S erver E dition W orkgroup S erver E dition E xpress E dition Express: wersja darmowa wsparcie techniczne na Forum internetowym. 3/125

4 Instancja (database manager) - niezależne środowisko do pracy z bazami danych - dwie instancje na tym samym komputerze nie współużytkują żadnych zasobów (parametrów, plików). Serwer administracyjny udostępnia usługi zdalnej administracji i harmonogramowania zleceń (np. wykonanie skryptu SQL o określonej godzinie). Serwer administracyjny ma własną konfigurację i własną narzędziową bazę danych (tools database). 4/125

5 Control Center Object Tree Pane Contents Pane Object Detail Pane 5/125

6 Hierarchia obiektów DB2 Instance=Database Manager Instance 1 dbm configuration file SYSCATSPACE SYSCATSPACE Catalog Catalog Log DB configuration file Database 1 View1 View2 Log DB configuration file Database 2 View1 TSSMS1 TSDMSLRG1 USERSPACE1 Table1 Table2 Table3 Table1 Index1 TSDMSLRG3 BLOBs TSDMSREG2 Index1 Index2 Przy tworzeniu bazy danych domyślnie są tworzone trzy przestrzenie tabel: SYSCATSPACE, TEMPSPACE1, USERSPACE1 6/125

7 Struktura przestrzeni tabel Kontener miejsce, gdzie przechowywane są dane np. katalog, plik, dysk (raw device). 7/125

8 Przestrzeń tabel zarządzana przez system operacyjny (SMS) CREATE TABLESPACE nazwa MANAGED BY SYSTEM USING ('path') Dodatkowe miejsce na dysku jest alokowane w miarę potrzeb dane mogą być rozrzucone po całym dysku (większa fragmentacja). Wymagają mniejszego zaangażowania DBA w zarządzanie. 8/125

9 Przestrzeń tabel zarządzana przez DBA (DMS) CREATE TABLESPACE nazwa MANAGED BY DATABASE USING (FILE 'path' size) Składa się z kontenerów, które mogą być: plikami o z góry ustalonym rozmiarze, założonych przez DBA w momencie tworzenia przestrzeni tabel, jest dla nich od razu alokowana przestrzeń na dysku, co oznacza, że zwykle znajdują się w spójnym obszarze na dysku. Oznacza to mniej operacji R/W. dyskami (RAW devices) - system ma do dyspozycji spójny obszar całego dysku. Aby powiększyć rozmiar przestrzeni tabel, administrator musi dołożyć kolejny kontener albo rozszerzyć istniejący. Dane LOB mogą być składowane w osobnej przestrzeni tabel. 9/125

10 Typy przestrzeni tabel v v v Regular - do przechowywania tabel, indeksów i tabel katalogu systemowego. Temporary - używane przez operacje, które wymagają dodatkowego miejsca na dysku: sortowanie, złączenia tabel, reorganizacja tabel. Long - do przechowywania danych typu LOB. 10/125

11 Strony danych i ekstenty Domyślnie strona danych w bazie DB2 ma wielkość 4 KB (można ustawić też wielkość 8, 16 i 32 KB podczas tworzenia bazy danych). Każda strona (niezależnie od wielkości) zawiera nagłówek o stałej wielkości 76 bajtów. Wiersz danych nie może być dzielony między różne strony danych. Rozmiar ekstentu może mieć różną wielkość (ustawioną przez DBA podczas tworzenia przestrzeni tabel) - równy wielokrotności rozmiaru strony danych. Dane typu Long Field (long varchar i long vargraphic) przechowywane są w segmentach po 32 KB a dane LOB w segmentach po 64 MB. 11/125

12 Wstawianie danych Miejsce na nowe dane jest alokowane we wszystkich kontenerach przestrzeni tabel wg algorytmu round-robin - dane w każdej przestrzeni tabel są równo rozłożone między kontenery. W momencie dołożenia kontenera do przestrzeni tabel jest wykonywana reorganizacja danych tak, aby uzyskać równomiernie rozłożenie danych w kontenerach. Kontenery powinny mieć jednakowy rozmiar, aby były równomiernie zapełniane i żeby miejsce w jednym z nich nie skończyło się szybciej niż w innych. 12/125

13 Przypisanie puli buforów danych do przestrzeni tabel Domyślna pula buforów: ibmdefaultbp ALTER BUFFERPOOL ibmdefaultbp IMMEDIATE SIZE 1000; CREATE BUFFERPOOL databp IMMEDIATE SIZE PAGESIZE 8K; ALTER TABLESPACE userspace1 BUFFERPOOL databp; 13/125

14 Struktura bazy danych 14/125

15 Partycja bazy danych Partycja bazy danych (węzeł bazodanowy, database partition) - część bazy danych składającą się z własnych danych, indeksów, plików konfiguracyjnych i dzienników transakcji. Oprócz tego są partycje tabeli jak w Oracle i MS SQL Server. 15/125

16 Tabela na poziomie fizycznym Obiekt tabeli składa się z osobnych podobiektów: Obiekt danych - zawierający zwykłe dane tabeli. Obiekt indeksów zawierający wszystkie indeksy założone na tabeli. Obiekt dla pól typu LONG zawierający zawartość wszystkich pól typu LONG. - Pierwszy obiekt dla pól typu LOB zawierający wszystkie dane LOB. - Drugi obiekt dla pól typu LOB zawierający metadane dla wszystkich danych LOB. 16/125

17 Bitmapy ekstentów Bitmapy: 1. alokowanych/wolnych ekstentów w pliku, 2. opisujące ekstenty używane przez daną tabelę. 17/125

18 Typy tabel 1. Regular implementowane jako sterta (heap). 2. Append typ regular zoptymalizowany dla operacji INSERT i wyszukiwania (z typu regular zmiana przez ALTER TABLE). 3. Multidimensional clustering (MDC) grupowane według kilku kluczy (nazywanych wymiarami) dla zastosowań OLAP. 4. Range-clustered (RCT) grupowane liniowo względem wartości jednoznacznego klucza (wartość klucza określa adres) z określonego przedziału wartości, z góry alokowany obszar dla rekordów. Możliwy obszar nadmiarowy dla kluczy spoza określonego przedziału. Oprócz tego niezależnie są indeksy pogrupowane. 5. Partycjonowane 18/125

19 Składowanie tabeli MDC jako zbioru komórek z dostępem przez indeksy blokowe Komórka (pojęcie logiczne) zbiór rekordów z tym samym układem wartości wymiarów. Indeks blokowy osobno dla każdego wymiaru. Alternatywa dla indeksów bitmapowych. 19/125

20 Zbiór komórek - każda składająca się ze zbioru bloków Komórka składa się z bloków stron rekordów (rozmiaru ekstentów) zapisywanych obok siebie na dysku. 20/125

21 Złożony indeks blokowy Umożliwiający znajdowanie bloków dla kombinacji wartości wymiarów. Uporządkowanie leksykograficzne 21/125

22 Tabela zorganizowana według wymiarów (MDC table) CREATE TABLE Sales ( sales_person VARCHAR(30) NOT NULL, region CHAR(5) NOT NULL, number_of_sales INT NOT NULL, year INT) ORGANIZE BY DIMENSIONS (sales_person, year); 22/125

23 SQL 23/125

24 Schemat Instancja serwera składa się z baz danych. Każda baza danych składa się ze schematów, w tym jeden schemat tworzony automatycznie o nazwie identycznej z identyfikatorem autoryzacji właściciela bazy danych. Jest to domyślny (bieżący) schemat w bazie danych. CREATE SCHEMA MySchema; Nazwa kwalifikowana obiektu w bazie danych: schemat.obiekt CREATE TABLE Tab1 (kol int); Tworzona w schemacie userid czyli userid.tab1 CREATE TABLE MySchema.Tab1 (kol int); Tworzona w schemacie MySchema czyli MySchema.Tab1 24/125

25 Usunięcie schematu DROP SCHEMA nazwa RESTRICT; Możliwe tylko wtedy, gdy schemat jest pusty nie zawiera obiektów (słowo RESTRICT wymagane). 25/125

26 Zmiana bieżącego schematu VALUES CURRENT SCHEMA; SET CURRENT SCHEMA db2admin; CREATE TABLE tab1 ( ); -- bieżący sch. CREATE TABLE schema1.tab1 ( ); -- jawny schem. SET CURRENT SCHEMA USER; 26/125

27 VALUES Wynikiem tabela o wartościach określonych przez wartości wyrażeń. Przykłady: VALUES (1, 2, 3) - 1 wiersz o 3 kolumnach VALUES (1,21),(2,22),(3,23) - 3 wiersze każdy o 2 kolumnach VALUES CURRENT DATE 1 wiersz z jedną kolumną 27/125

28 28/125

29 EMPLOYEE (lub STAFF) CREATE TABLE EMPLOYEE (EMPNO CHARACTER(6) PRIMARY KEY,FIRSTNME VARCHAR(12) NOT NULL,MIDINIT CHARACTER(1),LASTNAME VARCHAR(15) NOT NULL,WORKDEPT CHARACTER(3),PHONENO CHARACTER(4),HIREDATE DATE,JOB CHARACTER(8),EDLEVEL SMALLINT NOT NULL,SEX CHARACTER(1),BIRTHDATE DATE,SALARY DECIMAL(9,2),BONUS DECIMAL(9,2),COMM DECIMAL(9,2)) IN USERSPACE1; 29/125

30 DEPARTMENT (lub DEPT) CREATE TABLE DEPARTMENT (DEPTNUMB SMALLINT NOT NULL,DEPTNAME VARCHAR(14),MANAGER SMALLINT,DIVISION VARCHAR(10),LOCATION VARCHAR(13)) IN USERSPACE1; 30/125

31 Tabele CREATE TABLE tab1 (id INT); CREATE TABLE tab2 LIKE tab1; CREATE TABLE tab3 AS (SELECT * FROM tab1) ; DESCRIBE TABLE tab1; 31/125

32 Typy danych SMALLINT, INT, BIGINT REAL, DOUBLE, DECIMAL(n,m) CHAR(n), VARCHAR(n), LONG VARCHAR, CLOB(n) GRAPHIC,VARGRAPHIC,LONG VARGRAPHIC, DBCLOB(n) BLOB(n) DATE, TIME, TIMESTAMP DATALINK obiekt zawierający link (URL) do zewnętrznego obiektu (atrybuty: link type, data location, comment) XML 32/125

33 Konwersje typów Operacje na niekompatybilnych typach danych wymagają jawnej konwersji, np: CHAR <-> NUMERIC - Przykład jawnej konwersji CAST(col1 as DECIMAL(4,2)) DECIMAL(col1,4,2) - Metoda na sprawdzenie typów zapytania DESCRIBE OUTPUT (SELECT SUM(col1) FROM tab2); 33/125

34 Kolumna IDENTITY CREATE TABLE invoice_data (invoice# INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,. PRIMARY KEY (invoice#)); GENERATED ALWAYS zawsze generowany przez System (opcja domyślna), GENERATED BY DEFAULT generowane przez System gdy użytkownik nie załączy wartości. Ostatnio wygenerowana wartość: IDENTITY_VAL_LOCAL() Generowane przed wyzwalaczem BEFORE. Możliwe parametry: AS IDENTITY (START WITH 100 INCREMENT BY 10) 34/125

35 Wstawianie do tabeli z IDENTITY INSERT INTO customers(name, address) VALUES ( FRED, xxx ); -- lub INSERT INTO customers VALUES (DEFAULT, FRED, xxx ); Jedna operacja: Wstaw i wyświetl SELECT MIN(cust#) AS minc, WYNIK MAX(cust#) AS maxc, ============== COUNT(*) AS rows MINC MAXC ROWS FROM FINAL TABLE (INSERT INTO customers VALUES (DEFAULT,'FRED','xxx'), (DEFAULT,'DAVE','yyy'), (DEFAULT,'JOHN','zzz')); Połączenie dwóch instrukcji w jedną zwiększenie wydajności. 35/125

36 Sekwencje CREATE SEQUENCE seq1 AS BIGINT [START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24]; CACHE czy generować wartości sekwencji blokami VALUES NEXTVAL FOR seq1 ; VALUES PREVVAL FOR seq1 ; VALUES PREVVAL FOR seq1 INTO :host-var; ALTER SEQUENCE seq1 RESTART WITH 100; 36/125

37 Przykład CREATE SEQUENCE fred; SEQ# WITH temp1 (n1) AS 2 VALUES ( a ),( b ),( c ),( d ),( e ) 3 SELECT NEXTVAL FOR fred AS seq# 4 FROM temp1; 5 37/125

38 Globalna stała za pomocą sekwencji CREATE SEQUENCE biggest_sale_to_date AS INTEGER START WITH INCREMENT BY 0; Przechowywana w katalogu systemowym. 38/125

39 Tymczasowa globalna tabela DECLARE GLOBAL TEMPORARY TABLE fred (dept SMALLINT NOT NULL, avg_salary DEC(7,2) NOT NULL, num_emps SMALLINT NOT NULL) ON COMMIT PRESERVE ROWS; -- lub ON COMMIT DELETE ROWS -- DECLARE, bo jej schemat nie jest zapisywany w katalogu systemowym i istnieje tylko na czas sesji (domyślny kwalifikator schematu tabeli session tj. session.fred). Objęte mechanizmem wycofywania ale nie odtwarzania po awarii! INSERT INTO fred SELECT dept, AVG(salary), COUNT(*) FROM staff WHERE id > 200 GROUP BY dept; SELECT COUNT(*) AS cnt FROM fred; DELETE FROM fred WHERE dept > 80; 39/125

40 Odróżnialny typ Aby uniemożliwić wspólne operacje np. na dwóch różnych walutach. CREATE DISTINCT TYPE Jap_Yen AS DECIMAL(15,2) WITH COMPARISONS; Wartości typu JAP_YEN nie mogą być porównywane z wartościami typu DECIMAL(15,2) 40/125

41 Indeksy CREATE INDEX idx1 ON tab1(col1) ; CREATE INDEX idx1 ON tab1(col1) CLUSTER ; -- indeks pogrupowany na tabeli tab1, może być niejednoznaczny. Gdy indeks na kluczu głównym ma być pogrupowany, to jest istotna kolejność: CREATE TABLE bez definiowania klucza głównego, CREATE INDEX CLUSTER ALTER TABLE PRIMARY KEY 41/125

42 Partycjonowana tabela 1. Każda partycja tabeli w innej przestrzeni tabel CREATE TABLE Customer (shipdate DATE, name CHAR(30)) IN ts1, ts2, ts3, ts4, ts5 PARTITION BY RANGE(shipdate) (STARTING FROM ('01/01/2009') ENDING AT ('12/31/2009') EVERY (3 MONTHS)) 2. Każda partycja tabeli w innej partycji bazy danych CREATE TABLE Sales (CUSTOMER VARCHAR(80), REGION CHAR(5), YEAR INTEGER) DISTRIBUTE BY HASH (YEAR) ORGANIZE BY DIMENSIONS (REGION, YEAR) 42/125

43 Perspektywy CREATE VIEW employee_view AS SELECT a.empno, a.firstnme, a.salary, a.workdept FROM employee a WHERE a.salary >= (SELECT AVG(b.salary) FROM employee b WHERE a.workdept = b.workdept); 43/125

44 Perspektywy CREATE TABLE p1(id INT CHECK (id < 100)); CREATE TABLE p2(id INT CHECK (id >= 100)); CREATE VIEW pv AS SELECT id FROM p1 UNION ALL SELECT id FROM p2 WITH CHECK OPTION WITH ROW MOVEMENT; WITH ROW MOVEMENT przy aktualizacji wiersz naruszający warunek CHECK zmienia tabelę. 44/125

45 Perspektywy lokalne WITH temp1(id,name) AS ( VALUES (1,'abc'), (2,'bcd'), (3,'cde')) SELECT id+100, UCASE(name) FROM temp1 ORDER BY name DESC; WITH temp1(col1) AS ( VALUES 0 UNION ALL SELECT col1 + 1 FROM temp1 WHERE col1 + 1 < 100 ) SELECT * FROM temp1; -- rekurencyjna 45/125

46 Terminologia SELECTów WITH get_matching_rows AS -- perspektywa lokalna (SELECT id, name, salary -- podzapytanie FROM staff WHERE id < 50 UNION ALL -- pełne zapytanie SELECT id, name, salary -- podzapytanie FROM staff WHERE id = 100 ) SELECT * -- podzapytanie FROM get_matching_rows ORDER BY id FETCH FIRST 10 ROWS ONLY FOR FETCH ONLY; 46/125

47 Tabela zmaterializowanego zapytania - materialized query table (perspektywa zmaterializowana) CREATE TABLE staff_summary AS (SELECT dept, COUNT(*) AS count_rows, SUM(id) AS sum_id FROM staff GROUP BY dept) DATA INITIALLY DEFERRED REFRESH IMMEDIATE; - Tabela utworzona z klauzulami określającymi źródło AS oraz parametry odświeżania REFRESH: IMMEDIATE budowa przy użyciu instrukcji REFRESH TABLE, następnie przy każdej zmianie źródłowych tabel, lub DEFERRED tylko za pomocą instrukcji REFRESH TABLE. - Fraza DATA INITIALLY DEFERRED wymagana. - Można tworzyć indeks (ale nie PRIMARY KEY ani UNIQUE). - Można tworzyć indeks pogrupowany (CLUSTER). 47/125

48 Instrukcja REFRESH TABLE REFRESH TABLE staff_summary; Dwa tryby odświeżania: INCREMENTAL (przyrostowy) w oparciu o dziennik zmian, NOT INCREMENTAL wyliczane od nowa całe zapytanie. Dziennik zmian (staging table) wymagany do odświeżania typu INCREMENTAL. Tworzony tak jak tabela, np: CREATE TABLE emp_sumry_s ( ) FOR staff_summary PROPAGATE IMMEDIATE; 48/125

49 Alias tabeli, perspektywy CREATE ALIAS employee_al1 FOR employee; 49/125

50 Nickname Nazwa dla odległej tabeli lub nie-relacyjnego obiektu, przy użyciu którego w zapytaniach można ich używać tak jakby były zwykłymi tabelami. CREATE NICKNAME emp FOR unixserver.production.employee; 50/125

51 Katalog systemowy w schemacie SYSCAT SELECT CAST(colname AS CHAR(18)) AS Name, CAST(typename AS CHAR(18)) AS Type, length AS Length, scale AS Scale, nulls AS Nulls FROM syscat.columns WHERE tabname = 'MASTER' AND tabschema = 'PL38219' ORDER BY colno; 51/125

52 Więzy spójności ALTER TABLE detail ADD CONSTRAINT detail_fk FOREIGN KEY (fk) REFERENCES master(id) ON DELETE CASCADE; ALTER TABLE tab1 ADD CONSTRAINT const1 CHECK (ABS(c1) > 100 OR c2 < 1000) ; 52/125

53 Wyszukiwanie danych Jak w Standardzie: v v v v v v Kolumny wyliczane Select count Select distinct Klauzule WHERE, ORDER BY Klauzula GROUP BY HAVING Predykaty LIKE, BETWEEN, IN 53/125

54 Zmienne systemowe CURRENT ISOLATION CURRENT DATE CURRENT LOCK TIMEOUT CURRENT PATH CURRENT SCHEMA CURRENT TIME CURRENT TIMESTAMP USER VALUES CURRENT DATE; -- lub SELECT CURRENT DATE FROM sysibm.sysdummy1; -- jak DUAL w Oracle 54/125

55 Operacje na czasie CURRENT TIMESTAMP + 1 DAY CURRENT DATE 3 MONTHS CURRENT TIME 1 HOUR - 80 MINUTES + 2 SECONDS DATE(' ') + 1 MONTH MONTHNAME(CURRENT DATE) DAYOFYEAR(CURRENT TIMESTAMP) TO_CHAR(CURRENT TIMESTAMP,'YYYY-MM-DD HH24:MI:SS') CHAR(CURRENT DATE, ISO) CHAR(CURRENT DATE, EUR) 55/125

56 Operacje na ciągach znaków 'String1' CONCAT ' String2 ' LENGTH(RTRIM('String1 ' )) LTRIM(' String1' ) LCASE('String1' ) UCASE('String1' ) SUBSTR('abcdef',2,3) REPLACE ( 'DINING', 'N', '--' ) SELECT SUBSTR(PROJNO,1, 2) AS PROJ_CLASS, PROJNAME FROM PROJECT WHERE PROJNO LIKE 'IF%'; SELECT LASTNAME CONCAT ', ' CONCAT FIRSTNAME FROM EMPLOYEE WHERE WORKDEPT = 'A00' ORDER BY NAME; 56/125

57 Podzapytania SELECT CAST(t.nr AS INT), t.empno, t.lastname, (SELECT deptname FROM department WHERE t.workdept = deptno) deptname FROM (SELECT empno, lastname, workdept, ROW_NUMBER() OVER() AS nr FROM employee) AS t WHERE t.nr <= 10 57/125

58 Numerowanie rekordów (funkcje analityczne) WITH temp AS ( SELECT id, name, dept, years, salary, RANK() OVER(ORDER BY salary DESC) AS row FROM staff ) SELECT * FROM temp WHERE row > 5 and row <= 10 ORDER BY row; Rank = 1+ liczba rekordów mniejszych od niego w danym porządku (mogą więc być przerwy w numeracji, jeśli dwa lub więcej rekordów ma ten sam rank w danym porządku). Rownumber, row_number = kolejny numer (bez przerw). 58/125

59 CASE SELECT FIRSTNME, LASTNAME, CASE WHEN salary < THEN 'Należy sie podwyżka' WHEN salary > and salary < THEN 'OK' ELSE 'Przeplacamy' END AS comment FROM EMPLOYEE; 59/125

60 Złączenia *) INNER JOIN ON *) LEFT OUTER JOIN ON *) RIGHT OUTER JOIN ON *) FULL OUTER JOIN ON 60/125

61 Klauzule FETCH FIRST i OPTIMIZE FOR SELECT years, name, id FROM staff ORDER BY years DESC FETCH FIRST 10 ROWS ONLY; Zamiast FETCH FIRST n ROWS ONLY można użyć OPTIMIZE FOR n ROWS wtedy zwracane są wszystkie wiersze, ze wskazówką dla optymalizatora, że przekazywanie wierszy do klienta będzie się odbywać blokami n wierszy. Może być używana też bez ORDER BY. 61/125

62 Funkcja TABLE SELECT a.id, a.dept, a.salary, b.deptsal FROM staff a, TABLE (SELECT b.dept, SUM(b.salary) AS deptsal FROM staff b WHERE b.dept = a.dept GROUP BY b.dept ) AS b WHERE a.id < 40 ORDER BY a.id; Wymagana gdy podzapytanie odwołuje się do wierszy zewnętrznych tabel. Ale można było zastosować tu operator INNER JOIN bez korzystania z TABLE. 62/125

63 Przykład z funkcją TABLE SELECT id, salary AS sal, comm AS com, w, typ FROM staff, TABLE(VALUES (salary,'sal'), (comm, 'COM') ) AS tab(w, typ) WHERE id < 40 ORDER BY id, typ; 63/125

64 INSERT v v v v Create table A(liczba int, napis varchar(10)); Insert into A values (1,'aaa'); Insert into A (liczba) values(2); Insert into A values (3,'ccc'),(4,'ddd'),(5,'eee'); v Select * from A; v Create table B(liczba int, napis varchar(10)); v Insert into B (select * from A) ; 64/125

65 Wstawianie do dwóch tabel CREATE TABLE Us_customer (Cust# INTEGER NOT NULL, Cname CHAR(10) NOT NULL, Country CHAR(3) NOT NULL, CHECK (Country = 'USA'), PRIMARY KEY (Cust#)); CREATE TABLE Intl_customer (Cust# INTEGER NOT NULL, Cname CHAR(10) NOT NULL, Country CHAR(3) NOT NULL, CHECK (Country <> 'USA'), PRIMARY KEY (Cust#)); INSERT INTO (SELECT * FROM Us_customer UNION ALL (SELECT * FROM Intl_customer) VALUES (111,'Fred','USA'), (222,'Dave','USA'),(333,'Juan','MEX')); Połączenie dwóch instrukcji w jedną w celu zwiększenia wydajności. 65/125

66 Modyfikowanie danych - UPDATE v v Update B set liczba = liczba+10 where liczba<4; Update B set liczba = liczba+10, napis = 'cccc' where liczba = 12; v Update A set (liczba,napis) = (select liczba, napis from B where liczba = 22) where liczba = 2; 66/125

67 Usuwanie danych - DELETE v Delete from C where v Delete from (select rownumber() over(order by liczba) as rowid from A) where rowid>4; 67/125

68 Wyświetlanie modyfikowanych wierszy OLD TABLE, NEW TABLE, FINAL TABLE v v v Select from OLD TABLE (Delete from Select * from [NEW FINAL] TABLE (Insert into A values(10,'kkk'),(11,'mmm'),(12,'ooo')); Select from [NEW FINAL] TABLE (Update. NEW stan po wykonaniu instrukcji a przed wykonaniem wyzwalaczy AFTER i akcji referencyjnych FINAL stan na sam koniec po wykonaniu wyzwalaczy AFTER i akcji referencyjnych Połączenie dwóch instrukcji w jedną w celu zwiększenia wydajności. 68/125

69 MERGE Włóż wiersze tabeli u do tabeli g stosując UPDATE gdy wiersz z datą istnieje w g, wpp stosując INSERT. MERGE INTO main g USING (SELECT data,swieto FROM upd_main) u ON (g.data = u.data) WHEN MATCHED THEN UPDATE SET swieto = u.swieto WHEN NOT MATCHED THEN tylko INSERT lub SIGNAL INSERT (data,swieto) VALUES (u.data, u.swieto) [NOT] MATCHED [AND warunek_wyszukiwania] Połączenie INSERT, UPDATE, DELETE na jednej tabeli. Zwiększenie wydajności. 69/125

70 UNION, INTERSECT, EXCEPT v v v UNION i UNION ALL INTERSECT i INTERSECT ALL EXCEPT i EXCEPT ALL 70/125

71 TRANSAKCJE * Transakcje rozpoczynają się niejawnie. * Każda baza danych w DB2 jest transakcyjna. * Można wyłączyć tworzenie pozycji transakcji w dzienniku transakcji na poziomie tabeli na czas trwania transakcji (do jej końca). ALTER TABLE tabela ACTIVATE NOT LOGGED INITIALLY; 71/125

72 Poziomy izolacji Odejście od nazw w Standardzie. * UR : brak blokad, chyba, że dany rekord jest zmieniany (UNCOMMITTED READ) * CS : blokada na wierszu tylko przy odczycie rekordu (COMMITTED READ) * RS : blokada do odczytu utrzymywana do końca transakcji (REPEATABLE READ) * RR : niezmienny wynik każdego zapytania w trakcie trwania transakcji (SERIALIZABLE) 72/125

73 Blokowane obiekty 73/125

74 Blokady na tabeli Dla transakcji realizowanej w trybie READ UNCOMMITTED IN IS IX SIX S U X Z Intent None Intention Share Intention exclusive Share with Intention exclusive Share Update exclusive superexclusive Obejmuje też blokady wierszy Tylko blokada tabeli Z do wykonania ALTER i DROP na tabeli oraz CREATE i DROP na indeksie tabeli. 74/125

75 Blokady na wierszu Blokada wiersza Minimalna wspomagająca blokada na tabeli S U X W NS NW Share Update exclusive Weak exclusive Next key Share Next key Weak exclusive IS IX IX IX IS IX Aplikacja nie uzyskuje jeśli założyła blokadę na tabeli: blokady wierszy S, U, X lub Z 75/125

76 Dodatkowe rodzaje wierszowych blokad v v v Weak Exclusive W zakładana na wiersz wstawiany do tabeli (na tabeli IX) słabsza niż X na tym wierszu. Next Key Weak Exclusive NW gdy do indeksu jest dodawana nowa pozycja (na tabeli IX) słabsza niż X na tym wierszu. Next Key Share NS zakładana na wiersz podczas pełnego odczytu tabeli w trybie READ COMMITTED i REPEATABLE READ (na tabeli IS) słabsza niż S na tym wierszu. 76/125

77 77/125 Kompatybilność trybów blokad U YES NO NO NO YES NO NS YES YES NO NO YES YES W NO NO NO NO NO YES B A IN IS S IX SIX U X Z Tabelowe B A S U X W NS NW Wierszowe IS YES YES YES YES YES YES NO NO S YES YES YES NO NO YES NO NO IX YES YES NO YES NO NO NO NO IN YES YES YES YES YES YES YES NO X NO NO NO NO NO NO S YES YES NO NO YES NO NW NO NO NO YES YES NO SIX YES YES NO NO NO NO NO NO U YES YES YES NO NO NO NO NO X YES NO NO NO NO NO NO NO Z NO NO NO NO NO NO NO NO

78 Blokady explicite -- Zapytanie tylko do odczytu SELECT * FROM tab1 FOR READ ONLY; -- Zapytanie może uaktualniać rekordy w trakcie przemieszczania się kursora po zbiorze wynikowym SELECT * FROM tab1 FOR UPDATE; -- Do instrukcji SELECT, SELECT INTO, DELETE, UPDATE można dołączyć poziom izolacji: WITH RR, WITH RS, WITH CS, WITH UR. 78/125

79 Konwersja blokady v Gdy aplikacja posiadając już pewną blokadę na obiekcie, chce zamienić tę blokadę na silniejszą (np. U na X, IS na S, IX na X) Silniejsza blokada może być przyznana lub nie. v Przykład Aplikacja wybiera wiersz w tabeli używając klauzuli FOR UPDATE u Na wiersz jest zakładana blokada U (Update) Aplikacja dokonuje modyfikacji wiersza używając klauzuli WHERE CURRENT OF u Zachodzi konwersja blokady U na X 79/125

80 Parametry inicjalizacyjne bazy danych dotyczące blokad Locklist ilość miejsca pamięci do użycia przez blokady. Maxlocks maksymalny procent miejsca pamięci z Locklist przeznaczony do użycia przez pojedynczą transakcję. Gdy transakcja przekroczy Maxlocks, system zamienia blokady na wierszach na blokady na tabelach (eskalacja blokad). 80/125

81 Blokada tabeli ALTER TABLE tabela LOCKSIZE TABLE; -- (blokowanie tabeli zamiast domyślnie wierszy) Wskazane, gdy DML dotyczy większości wierszy dużej tabeli. Z powrotem do blokowania wierszy (które jest domyślne): ALTER TABLE tabela LOCKSIZE ROW; LOCK TABLE tabela IN [SHARE EXCLUSIVE] MODE (blokada zwalniana na koniec transakcji) 81/125

82 Blokada bazy danych/przestrzeni tabel (explicite) CONNECT TO database IN [EXCLUSIVE SHARE] MODE Blokada bazy danych: CONNECT TO database IN EXCLUSIVE MODE Blokada przestrzeni tabel: QUIESCE table-spaces FOR TABLE table-name INTENT FOR UPDATE; 82/125

83 Tworzenie typów obiektowych CREATE TYPE DEPT AS ( DEPT NAME VARCHAR(20), MAX_EMPS INT) REF USING INT MODE DB2SQL -- MODE DB2SQL wymagany CREATE TYPE EMP AS ( NAME VARCHAR(32), SERIALNUM INT, DEPT REF(DEPT), SALARY DECIMAL(10,2)) MODE DB2SQL CREATE TYPE MGR UNDER EMP AS ( BONUS DECIMAL(10,2)) MODE DB2SQL Ewentualna specyfikacja metody po słowie kluczowym METHOD. Niezależnie, implementacja metody: CREATE METHOD BONUS (RATE DOUBLE) FOR EMP RETURN SELF..SALARY * RATE 83/125

84 Przykład tabeli z podtabelami Hierarchia typów obiektowych: Typy obiektowe: BusinessUnit_t, Person_t Podtypy: Student_t UNDER Person_t, Employee_t UNDER Person_t, Manager_t UNDER Employee_t, Architect_t UNDER Employee_t 84/125

85 Tworzenie hierarchii tabel odpowiadającej hierarchii typów CREATE TABLE BUnit OF BusinessUnit_t (REF IS Oid USER GENERATED); CREATE TABLE Person OF Person_t (REF IS Oid USER GENERATED); CREATE TABLE Employee OF Employee_t UNDER Person INHERIT SELECT PRIVILEGES -- wymagana klauzula dla podtabel (SerialNum WITH OPTIONS NOT NULL, Dept WITH OPTIONS SCOPE BUnit ); CREATE TABLE Student OF Student_t UNDER Person INHERIT SELECT PRIVILEGES; CREATE TABLE Manager OF Manager_t UNDER Employee INHERIT SELECT PRIVILEGES; CREATE TABLE Architect OF Architect_t UNDER Employee INHERIT SELECT PRIVILEGES; 85/125

86 Instrukcje SQL na nadtabeli i jej podtabelach Instrukcje SELECT, UPDATE, DELETE operujące na nadtabeli, domyślnie działają również na wszystkich wierszach jej podtabel. Np. UPDATE na tabeli Employee dotyczy wierszy tabel Employee, Manager i Architect, ale UPDATE na tabeli Manager dotyczy tylko wierszy tabeli Manager. Aby ograniczyć działanie instrukcji wyłącznie do danej tabeli należy użyć opcji ONLY (np. ONLY Employee). 86/125

87 Jak zaszyfrować kluczowe dane? SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP(SSN) VALUES ENCRYPT (' '); INSERT INTO EMP(SSN) VALUES ENCRYPT (' ', 'Ben123'); SELECT DECRYPT_CHAR (SSN,'Ben123') FROM EMP; 87/125

88 LBAC (Label Based Access Control) Poziom dostępu definiowany dla tabel i wierszy tabel. SELECT * FROM EMP WHERE SALARY >= & Poziom dostępu użytkownika = 100 Użytkownicy na poziomie 100 mają dostęp do wierszy: ID <= 100 i salary >= (na zielono) No LBAC LBAC ID SALARY Gdy opcja LBAC nie jest włączona, użytkownicy za pomocą powyższego zapytania mają dostęp do wierszy: salary >= (na czerwono) Ułatwienie zarządzania uprawnieniami dostępu użytkowników do danych /125

89 Język procedur składowanych SQL Procedural Language (SQL PL) 89/125

90 Przypisanie wartości zmiennym Instrukcje w kodzie: SET zmienna = wyrażenie VALUES wyrażenie, INTO zmienna, 90/125

91 Instrukcja złożona (blok), zmienne BEGIN DECLARE v_var1 CHAR(20); DECLARE v_var2 INTEGER; DECLARE v_var3 TIMESTAMP; DECLARE v_var4 SMALLINT DEFAULT 99; SELECT name INTO v_var1 FROM staff FETCH FIRST 1 ROW ONLY; SET v_var2 = 100; VALUES CURRENT TIMESTAMP INTO v_var3; VALUES (p_par1,99) INTO v_var4,v_var2; END 91/125

92 ATOMIC, NOT ATOMIC BEGIN ATOMIC -- SQL e traktowane są jak jedno polecenie END -- nieobsłużony błąd -> zatrzymanie wykonywania -> -- wszystkie zmiany zostają wycofane BEGIN ATOMIC nie może być zagnieżdżony w BEGIN ATOMIC BEGIN NOT ATOMIC -- to jest domyślna opcja END -- nieobsłużony błąd -> zatrzymanie wykonywania -> -- Zmiany pozostają. Konieczne ręczne wycofanie. 92/125

93 Etykiety instrukcji złożonej lab1: BEGIN DECLARE v_id INT; lab2: BEGIN DECLARE v_id INT; SET lab1.v_id = 1; SET lab2.v_id = 10; SET v_id = 100; END lab2; END lab1 93/125

94 Instrukcje warunkowe IF v_var = 1 THEN UPDATE ELSE INSERT END IF; CASE WHEN v_var > 0 THEN WHEN v_var > 10 THEN ELSE END CASE; 94/125

95 Iteracje WHILE (var1 = 1) DO END WHILE; REPEAT UNTIL (var1 < 100) END REPEAT; label:loop LEAVE label; ITERATE label; END LOOP; GOTO label; 95/125

96 Instrukcja złożona i WHILE BEGIN ATOMIC DECLARE cnt INT DEFAULT 0; WHILE (cnt < 1000) DO INSERT INTO Tab1 VALUES (cnt, ceiling(rand()*1000) ); SET cnt=cnt+1; END WHILE; END Średniki oddzielają składowe instrukcje w instrukcji złożonej. Średnik nie może kończyć zewnętrznej instrukcji złożonej ani też końca instrukcji CREATE PROCEDURE. W skryptach można określić terminator przy użyciu -- #SET DELIMITER 96/125

97 Instrukcja FOR FOR loop_name AS SELECT col1, FROM DO SET var1 = loop_name.col1; END FOR; 97/125

98 Przykład BEGIN ATOMIC DECLARE cntr SMALLINT DEFAULT 1; FOR V AS SELECT id AS idval FROM staff WHERE id < 80 ORDER BY id DO UPDATE staff SET comm = cntr WHERE id = V.idval; SET cntr = cntr + 1; END FOR; END 98/125

99 Instrukcja złożona BEGIN ATOMIC DECLARE v_var2 INTEGER; CREATE TABLE mytab(id INT); CREATE INDEX mytab_idx ON mytab(id); BEGIN DECLARE v_var4 INTEGER DEFAULT 100; INSERT INTO mytab(id) VALUES (99),(v_var4); GET DIAGNOSTICS v_var2 = ROW_COUNT; SET p_result = 'L.wierszy: ' char(v_var2); END; END GET DIAGNOSTICS wymagane, aby uzyskać ROW_COUNT! 99/125

100 ITERATE, LEAVE BEGIN ATOMIC DECLARE cntr INT DEFAULT 0; whileloop: WHILE cntr < 60 DO SET cntr = cntr + 10; UPDATE staff SET salary = cntr WHERE id = cntr; IF RAND() < 0.5 THEN LEAVE whileloop; ELSEIF RAND() < 0.2 THEN ITERATE whileloop; ELSE UPDATE staff SET comm = cntr + 1 WHERE id = cntr; END IF; END WHILE; END 100/125

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

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

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

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

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

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

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

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Systemowe aspekty baz

Systemowe aspekty baz Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select

Bardziej szczegółowo

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Procedury składowane c.d. Parametry tablicowe w Transact-SQL. W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Zadanie 1. Proszę napisad procedurę składowaną, która

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

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

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

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

Systemowe aspekty baz danych

Systemowe aspekty baz danych Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select

Bardziej szczegółowo

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia

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

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta? Gr Masyla: 1. Zaznacz poprawne stwierdzenia dotyczące opcji recovery model w MS SQL Server a) Ustawienie Simple pozwala zaoszczędzid miejsce na dysku b) Model full jest zalecany dla baz danych, w których

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

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

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

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

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

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

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata

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

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

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

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

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Wyzwalacze TWORZENIE WYZWALACZY

Wyzwalacze TWORZENIE WYZWALACZY Wyzwalacze: podobnie jak procedury i funkcje, są nazwanymi blokami PL/SQL zawierającymi sekcje deklaracji, wykonania i obsługi wyjątków; nie akceptują argumentów; muszą być składowane jako samodzielne

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

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015 Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

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

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

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

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

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

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

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

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż. 1/40 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Październik 2015 2/40 Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Wykorzystanie 3/40 Projekt

Bardziej szczegółowo

SQL :: Data Definition Language

SQL :: Data Definition Language SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje

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

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora'; Administrowanie systemami baz danych Ćwiczenia laboratoryjne (1) Podstawy uruchamiania serwera bazy danych 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz

Bardziej szczegółowo

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe

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

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Łukasz Przywarty 171018 Wrocław, 05.12.2012 r. Grupa: CZW/N 10:00-13:00 Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Część 1: OLAP Prowadzący: dr inż. Henryk Maciejewski

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

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

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

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

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

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu Zbiór pytań nr 5 1 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu connect athos/musketeer grant select,insert,update,delete on athos.services to porthos with grant option; grant

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

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów

Bardziej szczegółowo

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę: Zbiór pytań nr 2 1 Tabela DEPARTMENTS ma następującą strukturę: Nazwa kolumny Typ danych Uwagi dept_id NUMBER(4) NOT NULL, PRIMARY KEY dept_name VARCHAR2(30) mgr_id NUMBER(6) location_id NUMBER(4) Które

Bardziej szczegółowo

Bazy danych Język SQL część 2 Wykład dla studentów matem

Bazy danych Język SQL część 2 Wykład dla studentów matem Bazy danych Język SQL część 2 Wykład dla studentów matematyki 21 marca 2015 Zapytania na kilku tabelach Czasem poszukiwana informacja znajduje się w kilku tabelach. Aby zapytanie dotyczyło kilku tabel,

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

na MS SQLServer 2005 i 2008

na MS SQLServer 2005 i 2008 Wprowadzenie do programowania na MS SQLServer 2005 i 2008 Kalen Delaney, Inside MS SQL Server 2000, Wydawnictwo RM, 2001 Kalen Delaney, Inside MS SQL Server 2005, The storage engine, Microsoft Press, 2007

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca

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

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

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL 2012-01-20

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL 2012-01-20 Plan wykładu BAZY DANYCH II WYKŁAD 9 Dynamiczny SQL, NDS, EXECUTE IMMEDIATE, Pakiet DBMS_SQL, Obiekty w PL/SQL, Tworzenie, wywoływanie, dziedziczenie, etc. dr inż. Agnieszka Bołtuć Dynamiczny SQL Pozwala

Bardziej szczegółowo

Oracle 12c: Nowości w SQL i PL/SQL

Oracle 12c: Nowości w SQL i PL/SQL Oracle 12c: Nowości w SQL i PL/SQL Marek Wojciechowski Politechnika Poznańska, PLOUG Nowe możliwości w klauzuli DEFAULT Odwołania do sekwencji Obsługa jawnie wstawianych wartości NULL Wartości na poziomie

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i

Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i struktury pamięciowe - aby użytkownik mógł uzyskać dostęp

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Typy danych wbudowane użytkownika Tabele organizacja wiersza przechowywanie dużych danych automatyczne

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

Bazy danych 5. Samozłaczenie SQL podstawy

Bazy danych 5. Samozłaczenie SQL podstawy Bazy danych 5. Samozłaczenie SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Przykład kolejowy Tworzymy bazę danych zawierajac a (uproszczony) rozkład jazdy pociagów

Bardziej szczegółowo

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

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

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

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

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

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty

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

Archiwizacja. i odtwarzanie bazy

Archiwizacja. i odtwarzanie bazy Archiwizacja i odtwarzanie bazy O czym będzie Metody odzyskiwania danych w DB2 Dzienniki transakcji Metody tworzenia kopii zapasowych Metody odtwarzania Operacje rollforward Odbudowa indeksów Problemy...

Bardziej szczegółowo

Microsoft SQL Server 2012 Krok po kroku

Microsoft SQL Server 2012 Krok po kroku Patrick LeBlanc Microsoft SQL Server 2012 Krok po kroku Przekład: Natalia Chounlamany APN Promise, Warszawa 2013 Spis treści Wprowadzenie.......................................................... xv Część

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

Zadania do wykonania na laboratorium

Zadania do wykonania na laboratorium Lab Oracle Katowice 2013v1 Fizyczna i logiczna struktura bazy danych 1 http://platforma.polsl.pl/rau2/mod/folder/view.php?id=9975 RB_lab2_v04st Przykładowe pomocne strony www: Zadania do wykonania na laboratorium

Bardziej szczegółowo