Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1

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

Download "Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1"

Transkrypt

1 WYKŁAD 1 i strony z pomocami do Oracle Rozwój Oracle DB: 1978 Oracle v 1 nigdy oficjalnie nie dystrybuowana 1979 O v2 pierwszy produkt komercyjny 1982 zmiana nazwy firmy z Relational Software na ORacle Software 1985 O v 5 architektura klient-server 1988 O v. 6 wprowadzenie blokad, backupów na gorąco, języka PL/SQL 1992 o o o8i 2001 o9i 2003 o 10g (grid computing) 2007 o 11 Oracle produkty i usługi: database: o baza danych Oracle sprawdza się w instytucjach sieciowych application serwer platforma Oracle j2ee integruje elementy potrzebne do rozwoju wdrażania aplikacji webowych Oracle applications jest zestawem aplikacji biznesowych pozwalających na zarządzanie i automatyzacji całości procesów w organizacji Oracle collaboration suite służy połączeniom i komunikacji w organizacji głosowym, , fax, łączność bezprzewodowa, kalendarz informacji i pliki Oracle developer suite to zintegrowane środowisko które laczy w sobie narzędzia do rozbudowy aplikacji orz narzędzia Business Intelligence Oracle services - Usługi takie jak Oracle consulting i Oracle university dostarczają niezbędnych ekspertyz dla projektów Oracle Oracle Database 11g g oznacza grid sieć siatka Global Grid forum (GGF) Technologia sieci Oralce obejmuje: Sieć aplikacji,kontrola w sieci ASM pozwala na rozplanowanie bazy danych na wszystkich dyskach. dodanie lub usuniecie dysku powoduje ponowne rozplanowanie danych RAC pozwala na używanie przez więcej niż jedna instancje tych samych plików, bazy danych rozmieszczonych na rożnych serwerach. Jeśli jeden z serwerów ulegnie awarii Instancja bazy danych na innym serwerze będzie przetwarzała transakcje OS umożliwia przepływ i współdzielenie danych i zdarzeń w tej samej bazie danych lub miedzy kilkoma bazami danych. Podczas aktualizacji umożliwia przechowywanie po każdej stronie 2 zsynchronizowanych kopii Ułatwiają zarządzanie wszystkimi komponentami infrastruktury Oracle 1

2 Enterprise manager grid to zestaw narzędzi, które ułatwiają zarządzanie wszystkimi komponentami infrastruktury Oracle Architektury bazy danych Oracle: serwer Oracle jest systemem zarządzania baza danych który zapewnia otwarte, kompleksowe, zintegrowane podejście do zarządzania informacją. Składa się z instancji Oracle oraz bazy danych Oracle serwer Oracle musi w niezawodny sposób zarządzać dużą ilością danych w środowisku z wieloma użytkownikami serwer Oracle musi również zapobiegać nieautoryzowanemu dostępowi oraz dostarczać efektywnych rozwiązań w przypadku problemów z odzyskiwaniem danych po awarii Zadania dla administratora bazy danych ORacle: ocena sprzętu dla serwera bazy danych instalacja oprogramowania Oracle planowanie strategii dla bazy danych i bezpieczeństwa tworzenie, migracja i otwieranie bazy danych tworzenie kopii zapasowej bazy danych rejestrowanie użytkowników systemu i planowanie ich dostępu do sieci Oracle projektowanie i implementacja (realizacja(bazy danych) odzyskiwanie bazy danych po awarii Monitorowanie wydajności bazy danych Oracle produktu i usługi: OUI służy do instalowania i konfiguracji wszystkich komponentów DBCA pozwala na stworzenie bazy danych Oracle na podstawie dostarczonych szablonów; umożliwia kopiowanie danych wstępnie skonfigurowanej bazy danych DBUA (database upgrade assistant (DBUA) - [pozwala na uaktualnianie istniejącej bazy danych do nowej wersji Oracle Oracle Net Manager - używany do skonfigurowania połączeń z siecią dla baz danych i aplikacji Oracle Oracle Enterprise Manager (EM) zestaw narzędzi do zarządzania komponentami Oracle, instancje baz danych, serwery aplikacji, serwery WWW, wspolpracuje z innymi narzędziami oracle, udostępnia 3 główne narzędzia administracyjne, SQL*PLUS stanowi wiersz poleceń do zarządzania baza danych isql*plus jest interfejsem pracującym w oparciu o przeglądarkę RECOVERY MANAGER (RMAN) zestaw narzędzi do tworzenia kopii zapasowych i przywracania bazy danych lub poszczególnych jej plików ORACLE SECURE BCKUP pozwala na tworzenie kopii zapasowych baz danych Oracle i sieciowej pamięci masowej z wykorzystaniem napędów taśmowych wyposażony w funkcje szyfrowania ochrony danych i dynamicznego współużytkowanie napędów DATA PUMP umożliwia szybki transfer danych z jednej bazy do innej (można wykorzystać np. podczas eksportu tabeli) SQL Loader pozwala na załadowanie danych z pliku zewnętrznego Command Line to ols do administracji Enterpise manager em 2

3 (emetl start status set stop) Uruchomienie lub zatrzymanie SQL plus (isqlpliusctrl start stop) Administracja procesem nasłuchiwania (lsnrctl help start status stop) Optimal Flexible Architecture (OFA) OFA stanowi zestaw metod konfiguracji baz danych Oracle ułatwia organizacje oprogramowania ułatwia rutynowe zadania administracyjne ułatwia przełączanie miedzy wieloma bazami danych Zarządza i administruje odpowiednim przyrostem bazy danych Wspiera procesy eliminowania fragmentacji wolnego miejsca pliki kontrolne: *.ctl pliki dziennika powtórzeń: *.log pliki danych: *.dbf ORACLE_BASE: określa katalog startowy struktury katalogowej Oracle dla narzędzi OFA ORACLE_HOME: określa katalog zawierający oprogramowanie Oracle. ORACLE_SID: wstępna nazwa instancji. jest to ciąg cyfr i liter, musi zaczynać się od litery. sugerowane żeby identyfikator systemu miał maksymalnie 8 znaków NSL_LANG: określa początkowe ustawienia National language suport (NLS) Planowanie bazy danych: DBA powinien zaplanować: strukturę logiczna przechowywania bazy danych i jej realizacje fizyczna, kompleksowy projekt bazy danych WYKŁAD 2 - Administrowanie bazą danych Oracle pl/sql Czym jest pl/sql stanowi proceduralne rozszerzenie języka SQL jest standardowym językiem dostępu do danych dla relacyjnych baz danych Oracle integruje konstrukcje proceduralne z SQL zapewnia struktury blokowe dzięki czemu zarządzanie kodem jest łatwiejsze zapewnia konstrukcje proceduralne m In: o zmienne, stałe i typy o struktury kontrolne: instrukcje warunkowe i pętle o jednostki programowe wielokrotnego wykorzystania (raz napisane, wykonane wiele razy) Struktura bloku pl/sql blok pl/sql składa się z 3 części: deklaratywnej (opcjonalna): sekcji deklaracji zaczyna się słowem kluczowym Declare a kończy się, gdy zaczyna się sekcja wykonywalna: deklaracje wszystkich stałych, zmiennych, kursorów oraz wyjątków zdefiniowanych przez użytkownika - opcjonalna 3

4 wykonywalnej (wymagana): sekcja wykonywalna zaczyna się słowem kluczowym BEGIN, a kończy END(END jest zakończone średnikiem). wykonywalna sekcja pl/sql może zawierać dowolną liczbę bloków. wyjątków (opcjonalnie) sekcja wyjątków jest zagnieżdżona w sekcji wykonywalnej. Rozpoczyna się od słowa kluczowego EXCEPTION UWAGA: słowa kluczowe DECLARE, BEGIN i EXCEPTION nie są zakończone średnikiem. Słowo kluczowe END oraz wszystkie instrukcje SQL i PL/SQL muszą być zakończone średnikiem. Typy bloków: 1. Bloki anonimowe: [declare] Begin statements [exception] end; są to bloki bez nazwy nie są przechowywane w bazie danych są przekazywane do realizacji przez silnik pl/sql w czasie wykonywania Z takich bloków składają się wyzwalacze w Oracle Chcąc uruchomić ponownie ten sam blok należy go przepisać Nie można wywoływać wcześniejszych bloków, ponieważ przestają istnieć po wykonaniu 2. procedure: PROCEDURE name is Begin statements [exception] end; są nazwanymi blokami pl/sql przechowywane są w bazie danych można wywołać je w dowolnym momencie (zależnie od potrzeb aplikacji) Mogą być zdefiniowane jako procedury lub funkcje, funkcja musi zwrócić wartość zazwyczaj procedury stosuje się do wykonywania określonych działań zaś funkcje obliczania i zwracania wartości Podprogramy można przechowywać na serwerze lub w ramach aplikacji wykorzystując komponenty Oracle (formularze raporty) można zadeklarować procedury i funkcje w ramach aplikacji (formularza lub raportu ) i połączyć je z innymi procedurami funkcjami i wyzwalaczami FUNKCJE: FUNCTION name return datatype IS BEGIN ---statements BEGIN zmienne zastosowania czasowe składowanie danych manipulowanie przechowywanymi wartościami ponowne odwołania Identyfikatory/ zmienne: Identyfikatory są wykorzystywane do nazywania zmiennych konwencje nazewnictwa zmiennych: o muszą zaczynać sięod litery 4

5 o mogą zawierać litery i cyfry o mogą zawierać znaki specjalne (np. znak $, znak _ i znak #) o limit długości do 30 znaków o nie mogą być słowami zastrzeżonymi Zmienne są o Deklarowane I inicjowane w sekcji deklaratywnej o Używane i przypisywane nowym wartościom w sekcji wykonywalnej o Przekazywane jako parametry do podprogramów PL/SQL o Wykorzystywane do przechowywania wyników podprogramów PL/SQL Składnia: identyfikator[constant] typ_danych [NOT NULL] [:= DEFAULT wyrażenie]; Przykłady: emp_hiredatre DATE emp_daptno NUMBER(2) NOT NULL := 10; location VARCHAR(13) := Atlanta ; c_ comm CONSTANT NUMBER := 1400; / - wykonywanie bloku Typy zmiennych: skalarne posiadają jedną wartość, zależna od typu danych złożone zawierają elementy wewnętrzne, które mogą być typu skalarnego lub złożonego np. rekord, tabela; referencyjne przechowują wskaźniki do miejsc składowania Large object (LOB) przechowują wartości, zwane lokalizatorami, które określają lokalizację dużych obiektów, takich jak obrazy graficzne Zmienne inne niż PL/SQL (Non-PL/SQL; Bind variables) - uwzględniają zmienne języka zdeklarowane w programach prekompilowanych, pola ekranów formularzy oraz zmienne hosta isql*plus Deklarowanie zmiennych w PL/SQL zmienna bez przypisanej wartości początkowej zawiera domyślnie NULL. Dobrze jest inicjować wszystkie zmienne. Dwa obiekty mogą mieć taką samą nazwę tylko wtedy gdy SA zdefiniowane w rożnych blokach. Tam gdzie współistnieją można używać dla nich etykiet Należy unikać nazywania zmiennych tak samo, jak kolumn. Jeśli zmienna PL/SQL wystąpi w wyrażeniu SQL i ma taką samą nazwę, jak kolumna, Oracle zakłada, że jest to Należy nakładać ograniczenie NOT NULL, gdy zmienna musi zawierać wartość, Nie można przypisać wartości null do zmiennej zdefiniowanej jako NOT NULL Po NOT NULL musi następować klauzula inicjalizacyjna np.: kod_pin NUMBER (15) NOT NULL := 1234 BINARY_FLOAT i BINARY_DOUBLE nowe typy danych 5

6 Zmienne z atrybutem %TYPE służy do zadeklarowania zmiennej zgodnie z: o definicją kolumny bazy danych najczęściej o inna zadeklarowana zmienna poprzedzany jest o tabelą bazy danych i kolumną o nazwą zadeklarowanej zmiennej Zalety: o o Można uniknąć błędów spowodowanych niezgodnością typów danych i złą precyzją Nie trzeba zmieniać deklaracji zmiennej w przypadku zmiany definicji kolumn PL/SQL określa typ danych i rozmiar zmiennej gdy blok jest kompilowany gwarantuje zgodność zmiennej z kolumną, która jest używana do jej wypełnienia. Ograniczenie not null dla kolumny bzy danych nie przenosi się na zmienne zadeklarowaną poprzez %TYPE nie można do nie j przypisać NULL Przykłady: Składnia: identifier table.column_name%type emp_lname employees.last_name%type balance NUMBER(7,2); min_balance balance%type := 1000; Deklarowanie zmiennych Boolean do zmiennej logicznej mogą być przypisane tylko wartości TRUE, FALSE oraz NULL w celu sprawdzenia wartości zmiennej wyrażenia warunkowego wykorzystują operatory AND, OR Wynikiem jest zawsze TRUE FALSE lub NULL Do zwracania wartości logicznej mogą być użyte wyrażenia arytmetyczne znakowe i daty Zmienne związane: VARIABLE return_code NUMBER VARIABLE return_msg VARCHAR2(30) tworzone są w środowisku nazywane również zmiennymi hosta Tworzone są ze słowem kluczowym VARIABLE Używane w blokach SQL i PL/SQL Można z nich korzystać nawet po wykonaniu bloku PL/SQL Odwołania do nich poprzez poprzedzający dwukropek Podstawienie zmiennych: ma na celu pobranie danych wprowadzonych przez użytkownika w czasie uruchamiania odwołanie w blok PL/SQL poprzez poprzedzający ampersand Wartości tekstowe są podstawiane w bloku PL/SQL przed wykonaniem bloku nie można podstawiać w pętli monit pojawi się jeden raz 6

7 DEFINE set verify off Defie lname= Urman declare Name varchar2(25); Begin selekt first_name into Name from employees where last_name= &lname ; end; / Polecenie DEFINE określa zmienna użytkownika i przypisuje mu wartość typu CHAR (nawet gdy wprowadzona będzie liczba np , przypisane zostanie wartość składająca się ze znaków 5,0,0,0,0 Odniesienie do zmiennej poprzez poprzedzający ampersand Funkcje SQL w PL/SQL Dostępne w wyrażeniach proceduralnych: Funkcje liczbowe Funkcje znakowe Konwersja typów danych Daty Timestamp NIEDOSTEPNE w wyrażeniach proceduralnych: DECODE Funkcje grupujące Znaków I liczb Znaków I dat Przykłady długość ciągu znaków: desc_size INTEGER(5); Konwersja typów danych Rodzaje konwersji: niejawna PL/ SQL obsługuje dynamicznie konwersję danych różnych typów w jednym wyrażeniu: może dotyczyć: o znaków i liczb o znaków i dat jawna; poprzez wbudowane funkcje konwertujące m.in. TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP Znaków I liczb Znaków I dat Jawna poprzez wbudowane funkcje konwertujące m.in. TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP Konwersja jawna: 7

8 Date_of_joining DATE:= TO_DATE( February , Month DD YYYY );Błąd: date of joining DATE := Februry 02,2000 ; konwersja jawna: Date_of_joining DATE:= TO_DATE( February , Month DD YYYY ); zagnieżdżone bloki może zawierać: Sekcja wykonywalna (BEGIN END) Sekcja wyjątków Polecenia SQL w kodzie PL/SQL obsługa pobierania wiersza z bazy danych za pomocą polecenia SELECT obsługa zmian w wierszach bazy danych za pomocą poleceń DML słowo kluczowe END nie kończy transakcji; kontrola transakcji odbywa sięga pomocą poleceń COMMIT, ROLLBACK lub polecenia SAVEPOIN; transakcja może obejmować wiele bloków oraz jeden blok może obejmować wiele transakcji PL/SQL bezpośrednio nie obsługuje poleceń DDL oraz DCL. Polecenia TE stanowią dynamiczny SQL są wbudowane jako ciągi znaków w trakcie wykonywania, mogą zawierać parametry w postaci symboli zastępczych; do wykonywania poleceń DDL służy polecenie EXECUTE IMMEDIATE Uwagi: Klauzula INTO jest wymagana Zapytanie może zwrócić co najwyżej jeden wiersz. PL/SQL zarządza tymi błędami poprzez standardowe wyjątki które można obsłużyć w sekcji wyjątków (NO_DATA_FOUND i TOO_MANY_ROWS); Wstawianie danych Podczas wstawiania danych z bloku PL/SQL można: używać funkcji SQL, takich jak USER i SYSDATE Generować wartości klucza podstawowego za pomocą istniejących w bazie danych sekwencji Pobierać wartość z bloków PL/SQL Kursory SQL kursor to wskaźnik do obszaru prywatnego pamięci przydzielonej przez serwer Oracle istnieje dwa rodzaje kursorów: o niejawne(domniemane) tworzone w celu przetwarzania SQL i zarządzane wewnętrznie przez serwer Oracle nie ma do nich dostępu. o Jawne deklarowane są jawnie przez programistę w części deklaracyjnej, pozwalają pracować na wielu wierszach jednocześnie Atrybuty kursorów niejawnych: atrybuty kursora SQL pozwalają ocenić co się stało podczas ostatniego użycia domyślnego kursora przedrostek SQL zastępuje nazwę kursora Atrybut SQL%NOTFOUND może być użyty jako warunek wyjścia z pętli. Jest przydatny w UPDATE i DELETE, gdy nie było modyfikacji wierszy, ponieważ nie są zawracane wyjątki 8

9 SQL%FOUND atrybut boolean ma wartość true jeśli ostatnie polecenie SQL zwróciło przynajmniej jeden wiersz SQL%NOTFOUND atrybut boolean ma wartość TRUE jeśli ostatnie polecenie SQL nie zwróciło ani jednego wiersza SQLROWCOUNT wartość całkowita reprezentująca liczby wierszy przetworzonych przez ostatnie polecenie SQL NULL: Uwagi: proste porównanie z NULL zawsze daje NULL zastosowanie operatora logicznego NOT dla NULL daje NULL WYKŁAD 3 Kontrolowanie kursorów jawnych deklaracja kursora następuje w części deklaracyjnej bloku PL/SQL poprzez określenie nazwy i zawiązanego zapytania polecenie OPEN wykonuje zapytanie i wiąże wszystkie zmienne, do których się odwołuje. Wiersze wskazane przez zapytanie są od tego momentu dostępne do pobrania Pobranie danych z kursora. Po każdym pobraniu należy sprawdzić kursor pod katem istniejących wierszy. Jeżeli nie ma więcej wierszy do przetwarzania, należy zamknąć kursor. Polecenie CLOSE zwalnia aktywny zestaw wierszy. W tym momencie można ponownie otworzyć kursor z nowym aktywnym zestawem Deklarowanie kursora Składnia: Cursor kursor_name is selekt_statement; deklaracja kursora nie zawiera klauzuli INTO pojawia sięw poleceniu FETCH wskazane jest stosowanie klauzuli ORDER BY w zapytaniu Przykłady DECLARE CURSOR EMP_CURSOR IS SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES WHERE DEPARTAMENT_ID = 30 DECLARE LOCID DEPT_CURSOR IS SELECT *FROM DEPARTAMENTS WHERE LOCATION_ID = LOCID; Polecenie OPEN DECLARE CURSOR EMP_CURSOR IS SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEE WHERE DEPARTAMENT_ID = 30 9

10 BEGIN OPEN EMP_CURSOR Polecenie OPEN wykonuje następujące operacje: dynamicznie przydziela pamięc przetwarza polecenie SELECT wiąże zmienne wejściowe Wykłady z Administracji bazą danych Oracle 2010 określa aktywny zestaw (zbiór wierszy, które spełniają kryteria wyszukiwania) ustawia wskaźnik na pierwszy wiersz aktywnego zestawu UWAGA: JEZELI KWERENDA NIE ZWRZACA ZADNYCH WIERSZY PL/SQL NIE ZGLOSI WYJATKU, MOZNA SPRAWDZIC STAN KURSORA PO POBRANIU UZYWAJAC ATRYBUTY <CURSOR_NAME>% ROWCOUNT Zamykanie kursora LOOP FETCH emp_cursor INTO Emino, lnami; EXIT WHEN emp_curso%notfound DBMS_OUTPUT, PUT_LINE(empno lname) END LOOP CLOSE emp_cursor END; / kursor może być ponownie otwarty tylko wtedy, gdy zostal zamkniety. Przy probie pobrania danych z kursora po jego zamknieciu, zgłoszony zostanie wyjatek INVALID_CURSOR UwagaL Możliwe jest wyjscie z bloku PL/SQL bez zamykanie kursorów, jednak wskazane jest zwalnianie zasobów Istnieje limit liczby otwartych kursorów na sesję, który jest określony przez Parameter OPEN_CURSORS, w pliku parametrow, domyślnie OPEN_CURSORS = 50 Pętle for uparte na kursorze Pętle for uparte na kursorze = kursory for Można skorzystać z pętli for dla kursora, która przetwarza wiersze z kursora jawnego kursor jest otwierany, ładowany i zamykany automatycznie Pętla sama wygasa automatycznie na końcu iteracji, w której ładowany jest ostatni wiersz Rekord dla pętli jest deklarowany domyślnie FOR rekord_name IN cursor_name statements1 statements2 END LOOP Atrybuty kursorów jawnych: Atrybut Typ Opis %Isopen Boolean zwraca true jeśli kursor jest otwarty 10

11 %notfound Boolean zwraca true jeśli ostatnie ładowanie nie zwróciło wiersza %found Boolean Zwraca true jeśli ładowanie zwróciło wiersz %rowcount number zwraca całkowitą liczbę wierszy Kursory FOR na podstawie zapytań nie trzeba deklarować kursora. Zestaw wierszy określany jest dla pętli na podstawie zapytania SELECT Uwaga: Nie można jawnie odnieść się do atrybutów kursora, gdyż nie ma nazwy SET SERVER OUTPUT ON BEGIN FOR emp_record IN (SELECT employee_id, last name FROM employee where departament_id = 30) LOOP DBMS_OUTPUT.PUT_LINE (EMP_record.employee.id ) END LOOP; END; / Kursory z paramerami: CURSOR kursor_name [(parameter_name datatype, }] IS Selekt STATEMENT; OPEN kursor_name(parameter_value,///); Każdy parametr formalny w deklaracji kursora musi mieć odpowiadający mu parametr w poleceniu OPEN. Typy danych dla parametrów są takie same jak dla zmiennych, podaje się je bez rozmiarów Kursory z parametrami wykorzystywane są przede wszystkim w sytuacjach gdy do danego kursora wielokrotnie sie odwołuje Można przekazywać parametry do kursorów FOR: declare kursor emp_cursor(p_deptno NUMBER, p_job varchar2) is select.begin Klauzula FOR UPDATE Służy do blokowania wierszy z zapytania kursora SELECT FROM FOR UPDATE [OF kolumn_reference][nowait WAIT n]; DECLARE CURSOR EMP_CURSOR IS SLECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES WHERE DEPARTAMENT_ID = 80 FOR UPDATE OF SALARY 11

12 NOWAIT; Klauzula WHERE CURRENT OF Klauzula WHERE CURRENT OF jest stosowana w połączeniu z klauzulą FOR UPDATE (blokada wiersza) w celu odwołania się do bieżącego wiersza w kursorze jawnym. Dzięki temu nie trzeba odwoływać się bezpośrednio do ID wiersza WHERE CURRENT OF CORSOR ; UPDATE EMPLOYEES SET SALARY = WHERE CURRENT OF EMP_CURSOR; TWORZENIE PROCEDUR SKŁADOWANYCH I FUNKCJI Bloki anonimowe: bloki bez nazwy kompilowane za każdym razem nie przechowywane w bazie nie mogą być wywoływane przez inne aplikacje nie zwracają wartości bez parametrów PODPROGRAMY: Bloke nazwane Kompilowane tylko raz Przechowywane w bazie Mogą być wywoływane przez inne aplikacje (poprzez nazwę) Funkcje musza zwracać wartość Mogą być wywoływane z parametrami Wywoływanie procedur po poprawnym wykonaniu kodu, można wyświetlić nazwę procedury z tabeli user_objects: selekt object_name, object_type FROM user_objects Źrodlo procedury przechowywane jest w tabeli user_seurce: SELECT * FROM user_source WHERE Name = Add dept Wywoływanie procedury z bloku anonimowego BEGIN Add_dept; End; / Select depart_id, depart_name from dept where dep_id=30 Można wywołać procedurę poprzez CALL <procedure_name>. Można wykorzystać polecenie DESCRIBE w celu sprawdzenia typu zwracanego przez funkcję: 12

13 DESCRIBE check_sal; Wykłady z Administracji bazą danych Oracle 2010 Typy złożone: ułatwiają dostęp i zarządzanie danymi rodzaje typów złożonych: o rekordy PL/SQL zawierają logicznie powiązane zmienne różnych typów; jedno wystąpienie zmiennej o kolekcje PL/SQL - traktują zbiór jako całość; poszczególne elementy kolekcji są tego samego typu; analogia do tablic w innych językach programowania; istnieją trzy rodzaje kolekcji Tabele INDEX BY oraz tabele asocjacyjne Tabele zagnieżdżone VARRAY Rekord to grupa powiązanych ze sobą danych przechowywanych w polach, każde ze swoją własną nazwą i typem danych podobne do struktur w innych językach programowania Mogą mieć przypisane wartości początkowe oraz ograniczone NOT NULL. Można przypisywać DEFAULT, Można zdefiniować zmienną typu RECORD lub samemu zdefiniować rekordy w sekcji deklaracji Składnia: type type_name is rekord (field_declaration[, field_declaration] ); identifier type_name; field_declaration: field_name {field_type variable%type.. Struktura rekordu Pola w rekordzie są dostępne poprzez nazwę rekordu: record_name.field_name Przykład odniesienia do pola Job_id z rekordu emp_record: emp_record.job_id Przypisanie: Emp_record.job_id = ST_CLERK * ; Atrybut %ROWTYPE DECLARE identifier reference%rowtype; Zalety: atrybut ROWTYPE% wykorzystuje się do deklaracji rekordu, który może przechowywać cały wiersz tabeli lub widoku. Pola rekordu pobierają nazwy i typy danych z kolumn tabeli lub widoku Prefiks dla %ROWTYPE stanowi nazwa tabeli lub widoku Rekord może również przechowywać cały wiersz danych pobranych z kursora DECLARE Emp_record Employees%rowtype Nie trzeba znać liczby I typów danych kolumn bazy danych mogą zmieniać się w czasie działania 13

14 Przydatny podczas pobierania wierszy za pomocą selekt *; brak tego atrybutu wymusza deklarację zmiennej dla każdej z kolumn pobieranych przez Select OBSŁUGA WYJĄTKÓW Wyjątki pozwalają na określenie ostatecznych działań przed zakończeniem bloku Metody zgłaszania wyjątków o pojawia się błąd Oracle a i automatycznie zgłaszany jest wyjątek; błędy przekształcane są na predefiniowane wyjątki o Wyraźne zgłoszenie wyjątku poprzez polecenie raise, można obsłużyć wyjątki użytkownika lub predefiniowane istnieją również błędy Oracle a, które nie są predefiniowane i mogą być przypisane do jawnie zadeklarowanych wyjątków Typy wyjątków: 1. Predefined Oracle Server terror dowolny z około 20 najczęściej pojawiających się błędów w kodziepl/sql nie trzeba deklarować tych wyjątków, SA predefiniowane przez serwer i zgłaszane niejawnie 2. NON-redefined Oracle Server terror dowolny z pozostałych standardowych błędów Oracle Server 3. USER DEFINED ERROR sytuacja, którą projektant uzna za niepożądaną deklarowane i zgłaszane jawnie Przechowywanie innych błędów Oracle Server wyjtki dla innych niż predefiniowane błędów Oracle a tworzy się za pomocą funkcji PRAGMA EXCEPTION_INIT można przechwycić błędy Oracle poprzez ich zadeklarowanie. Zadeklarowane wyjątki są wywoływane niejawnie. W PL/SQL, PRAGMA EXCEPTION_INIT informuje, żeby nazwę wyjątku skojarzyć z numerem błędu Oracla, UWAGA: PRAGMA (= pseudoinstrukcja) to słowo kluczowe, które oznacza dyrektywę kompilatora, która nie jest przetwarzana podczas wykonywania bloku PL/SQL Zadeklarowanie nazwy wyjątku: nazwa_wyjątku EXCEPTION; Skojarzenie ze standardowym numerem błędu Oracle a za pomocą funkcji PRAGMA EXCEPTION_INIT: PRAGMA EXCEPITON_INIT (nazwa_wyjąku, error_number); Odniesienie się do wyjątku za pomocą odpowiedniej obsługi wyjątku Funkcje do przechwytywania wyjątków: Wyjątek można zidentyfikować za pomocą dwóch funkcji: Funkcja: o SQLCODE zwraca wartość numeryczną błędu o SQLERRM zwraca łańcuch znaków zawierający komunikat skojarzony z numerem bledu SQLCODE VALUE o 0 o 1 o +100 o negative number 14

15 Nie można wykorzystywać SQLCODE i SQLERRM bezpośrednio w poleceniach SQL Procedura RAISE_APPLICATION_ERROR przekazuje kod błędu i komunikat o błędzie. Za pomocą RAISE_APPLICATION_ERROR można zgłaszać błędy do aplikacji i unikać nieobsługiwanych wyjątków WYZWALACZE Wyzwalacz (trigger) jest blokiem lub procedurą PL/SQL związaną z tabelą, widokiem, schematem lub bazą danych. Wyzwalacz jest wykonywany niejawnie, za każdym razem, gdy zachodzi określone zdarzenie. Wyróżnia się 2 typy wyzwalaczy: wyzwalacze aplikacyjne: uruchamiane gdy pojawi się zdarzenie z określonej aplikacji związane z poleceniem DML wywoływanym spod aplikacji (przykład Oracle Forms Developer) Wyzwalacze bazodanowe niezależnie od użytkownika i aplikacji; uruchamiane, gdy nastąpi dowolne zdarzenie związane z danymi lub zdarzenie systemowe: o Operacje DML na tabeli o Operacje DML na widoku o Polecenia DML, tj. CREATE i ALTER o Zalogowanie użytkownika o Zamknięcie bazy danych wyzwalacz w zależności od typu wywoływany jest jednokrotnie dla polecenia DML lub dla każdego wiersza którego dotyczy nazwa wyzwalacza musi być unikatowa w stosunku do innych wyzwalaczy w tym samym schemacie Wyzwalacz z poziomu instrukcji: wykonuje się raz dla zdarzenia wyzwalającego jest typem domyślnym Wykonuje się nawet gdy nie dotyczy żadnego z wierszy Wyzwalacz z poziomu wierszy: Wykonuje się raz dla każdego wiersza, którego dotyczy czynnik wyzwalający Nie jest wykonywalny, jeżeli zdarzenie wywołujące nie dotyczy żadnych wierszy Definiowany poprzez klauzulę FOR EACH ROW Elementy składni: timing wskazuje kiedy wywołać wyzwalacz w stosunku do zdarzenia wywołującego: before, after, instead of event - wskazuje operację DML, która powoduje uruchomienie wyzwalacza INSERT, UPDATE [of column], DELETE Object_name wskazuje tablice lub widok związany z wyzwalaczem Na poziomie wiersza można określić: REFERENCING klauzula do określenia referencji dla starych i nowych wartości w bieżącym wierszu (domyślne nazwy do OLD i NEW) 15

16 FOR EACH ROW wskazuje ze jest to wyzwalacz na poziomie wiesza WHEN klauzula określająca warunek w nawiasach, sprawdzany dla każdego wiersza w celu ustalenia wykonania ciała wyzwalacza Trigger_body działania wykonywane przez wyzwalacz, realizowane poprzez: o Anonimowy blok (DECLARE lub BEGIN i END) o Klauzulę CALL wywołującą procedurę (samodzielną lub pakietową) INSTEAD OF najczęściej stosuje się dla widoków BEFORE AFTER jest często stosowany gdy polecenie wyzwalające ma być zakończone przed wykonaniem czynności wyzwalacza Kwalifikatory OLD i NEW dla INSERT tylko mamy wartość New, dla UPDATE mamy zarówno wartość old jak i new dla DELETE mamy tylko wartość OLD Tworzenie wyzwalacza INSTEAD OF Zarządzanie wyzwalaczami: włączenie/wyłączenie wyzwalacza: ALTER TRIGGER trigger_nam DISABLE ENABLE włączenie/ wyłączenie wszystkich wyzwalaczy dla tabeli: ALTER TABLE table Rekompilacja wyzwalacza: ALTER TRIGGER trigger_name COMPILE Usunięcie wyzwalacza: DROP TRIGGER trigger_name; Uwaga: usuniecie tabeli powoduje usuniecie wszystkich jej wyzwalaczy WYKŁAD 4 Tabele INDEX BY oraz tabele asocjacyjne stanowią struktury z dwiema kolumnami mają niezależny rozmiar od klucza klucz tabeli nie jest sekwencyjny Metody tabel INDEX BY Składnia: table_name.method_name[(parameters)] Metody: exists(n) zwraca TRUE, gdy istnieje element n count zwraca liczbę elementów tabeli first i last zwraca pierwszy i ostatni (największy i najmniejszy) numer indeksu; gdy tabela jest pusta, zwraca NULL PRIOR(n) - zwraca nr poprzedzający indeks n NEXT(n) - zwraca nr kolejny po indeksie n 16

17 DELETE usuwa wszystkie elementy z tabeli, Delete(n) usuwa element o numerze n; delete(m,n) usuwa elementy z zakresu od m do n Można odnieść się do pół rekordu dept_table poprzez: table(index).field Przykład (location_id stanowi pole dept_table) Dept_table(15).location_id := 1700 Tabele zagnieżdżone Funkcjonalność tabel zagnieżdżonych jest zbliżona do tabel INDEX BY Kluczem nie może być PLS_INTEGER. Klucz nie może być ujemny Do pierwszej kolumny odnosi się, jak do klucza, jednak nie jest to klucz tabela zagnieżdżona nie ma klucza Dowolne elementy można usunąć pozostaną klucze niesekwencyjne Wiersze tabeli nie mają określonego porządku. Dopiero przy pobraniu wartości z tabeli wierszom przyporządkowuje się kolejne indeksy od 1 Tabele sekwencyjne mogą być przechowywane w bazie danych (w przeciwieństwie do tabel INDEX BY) Tabele zagnieżdżone: najpierw tworzymy typ obiektowy i definiujemy jak on wygląda. Następnie definiujemy typ tabelaryczny i deklarujemy kolumny typu zdefiniowanej kolekcji. Tabele zagnieżdżone przechowywane są poza wierszem w tabelach przechowywania. Varray Tablica o zmiennej wielkości (VARRAY) jest podobna do tabeli PL/SQL. VARRAY jest ograniczona pod względem wielkości. Maksymalny rozmiar VARRAY to 2GB (jak w tabelach zagnieżdżonych) Różnica między tabelami zagnieżdżonymi i VARRAY dotyczy fizycznego modelu przechowywania. Elementy VARRAY są przechowywane sąsiadująco w pamięci a nie w bazie danych. Można tworzyć typ VARRAY w bazie danych za pomocą języka SQL. Przykład: Type location_type is Varray of locations.city%type Office location_type; Porównanie kolekcji: Tabele zagnieżdżone czy asocjacyjne tabele asocjacyjne stosuje się, gdy: o trzeba zgromadzić dane nieznanych rozmiarów o potrzebne są elastyczne indeksy (ujemne, nie-sekwencyjne lub oparte na ciągach znaków) dla indeksów ujemnych TYLKO tabele asocjacyjne, o Trzeba przekazywać kolekcję z serwera bazodanowego I na serwer. Tabele zagnieżdżone stosuje się gdy: o Wymagana jest trwałość o Kolekcja ma być przekazywana jako parametr Porównanie kolekcji: Tabele zagnieżdżone czy VARRAYS Varrays stosuje się, gdy: o liczba elementów jest z góry znana, o stosuje się sekwenycjny dostęp elementów 17

18 o o Wykłady z Administracji bazą danych Oracle 2010 wymagają mniejszego dostępu do dysku (są przechowywane w pamięci) bardziej wydajne nie pozwalają na aktualizację części elementów Tabele zagnieżdżone stosuje się gdy: o Wartości indeksów nie są kolejne o Nie ma wstępnego górnego ograniczenia wartości indeksów o Zachodzi konieczność usunięcia lub aktualizacji niektórych elementów, ale nie wszystkich jednocześnie. o Istnieje konieczność trwałego przechowywania dużej ilości danych dla każdego wiersza - łatwiejsze w obsłudze DYNAMICZNY SQL Polecenia SQL dostępne w PL/SQL ograniczają się do SELECT, INSERT, UPDATE, DELETE, COMMIT oraz ROLLBACK. Przetwarzane są w czasie kompilacji muszą mieć stałą strukturę. Dynamiczny SQL wykorzystywany jest: o do tworzenia poleceń SQL, których struktura może ulec zmianie w czasie wykonania o w celu zrealizowania poleceń DLL Dynamiczny SQL: o Jest tworzony i przechowywany jako ciąg znaków w aplikacji o Ma postać polecenia SQL wywoływanego z różnymi kolumnami lub różnymi warunkami Wykonanie dynamicznego SQL odbywa się poprzez EXECUTEIMMEDIATE lub pakiet DBMS_SQL Polecenie EXECUTE IMMEDIATE Polecenie EXECUTE IMMEDIATE wykorzystywane jest przy dynamicznym SQL lub anonimowych blokach PL/SQL: EXECUTE IMMEDIATE dynamic_string [INTO {Defie_variable [, Defie_variable] rekord }] [USING [IN OUT IN OUT] bind_argument [, [IN OUT IN OUT] bind_argument INTO jest używane do pojedynczych wierszy zapytania, określa zmienne lub rekordy, do których mają być pobierane wartości kolumn USING jest używane do przechowywania związanych argumentów. Domyślny tryb to IN Wykorzystanie pakietu DBMS_SQL Pakiet DBMS_SQL służy do zapisu dynamicznego SQL w procedurach przechowywanych I analizowania poleceń DDL Niektóre procedury I funkcje pakietu o OPEN_CURSOR o PARSE o BIND_VARIABLE o EXECUTE o FETCH_ROWS o CLOSE_CURSOR 18

19 Dynamiczny SQL vs DBMS_SQL Zalety dynamicznego SQL: Wykłady z Administracji bazą danych Oracle 2010 jest łatwiejszy w użyciu niż DBMS_SQL: zintegrowany z SQL, bardziej zwarty i czytelny, wymaga mniej kodu niż DBMS_SQL Poprawia wydajność, ponieważ interpreter PL/SQL zapewnia dla niego wsparcie Obsługuje wszystkie typy statyczne SQL w PL/SQL w tym typy zdefiniowane przez użytkownika Pozwala pobrać wiersze bezpośrednio do rekordu PL/SQL PAKIETY Pakiety L/SQL umożliwiają łączenie w ramach jednego kontenera pokrewnych dla PL/SQL typów, zmiennych, struktur, wyjątków i podprogramów. Przykład: pakiet Human Resources może zawierać procedury zatrudniania i zwalniania, prowizje i premie funkcyjne Pakiet składa się zazwyczaj z dwóch części przechowywanych w bazie danych oddzielnie: o specyfikacji o ciała (opcjonalnie) Sam pakiet nie może być wywoływany, parametryzowany lub zagnieżdżany Po napisaniu i kompilacji, zawartość pakietu może być współdzielona przez wiele aplikacji Cały pakiet jest ładowany do pamięci przy pierwszym wywołaniu jego elementu, kolejne dostępy nie wymagają operacji I/O Specyfikacja pakietu Create [OR REPLACE] PACKAGE packane_name IS AS public type and variable declarations subprogram specifications END [packane_name]; Opcja OR REPLACE usuwa i ponownie tworzy specyfikację pakietu. Zmienne zadeklarowane w specyfikacji pakietu, o ile nie są zainicjalizowane, są domyślnie ustawiane na NULL. Wszystkie konstrukcje zadeklarowane w specyfikacji pakietu są widoczne dla użytkowników, którzy mają nadane uprawnienia Uwaga: specyfikacja pakietu powinna zawierać procedury i nagłówki funkcji zakończone średnikiem bez słowa kluczowego IS (lub AS). Definicja procedury lub funkcji która jest zadeklarowana w specyfikacji pakietu znajduje się w ciele pakietu. Przykład specyfikacji pakietu comm_pkg CREATE OR REPLACE PACKAGE comm_pkg IS std_comm NUMBER := 0.10; --initalized to 0.10 PROCEDURE reset_comm(new_comm NUMBER); END comm_pkg; STD_COMM jest zmienną globalną zainicjowaną wartością RESET_COMM jest publiczną procedurą wykorzystywaną do modyfikacji standardowej prowizji w oparciu o określone zasady handlowe, jest realizowana w ciele pakietu. Ciało pakietu CREATE [OR REPLACE] PACKAGE BODY packane_name IS AS private type and variable declarations subprogram Dobies [BEGIN initalization statements] END [packane_name]; Opcja OR REPLACE usuwa I ponownie tworzy zawartość pakietu 19

20 Należy pamiętać o właściwej kolejności podprogramów zmienna lub nadprogram musi być zadeklarowana przed użyciem Zakończenie realizacji wszystkich procedur lub funkcji zadeklarowanych w specyfikacji pakietu w ciele pakietu Podanie nazwy pakietu po słowie kluczowym END jest opcjonalne [BEGIN inicjalization statements] jest blokiem opcjonalnym dla kodu inicjalizacyjnego który wykonywany jest podczas pierwszego odtworzenia Pakiety bez ciała: Zmienne i stałe zadeklarowane w samodzielnych podprogramach istnieją tylko w czasie wykonywania podprogramu. Specyfikacji pakietu zawiera globalne zmienne i stałe, które istnieją w czasie sesji użytkownika. W takim przypadku tworzy się specyfikację pakietu bez ciała. Przeglądanie pakietów w słowniku danych kodem źródłowym pakietów można zarządzać oraz przeglądać go poprzez tabele słownikowe USER_SOURCE oraz ALL_SOURCE. Wyświetlanie specyfikacji pakietu: SELECT text FROM user_source WHERE Name = COMM_PKG AND type = PACKAGE Korzyści z wykorzystania pakietów modułowość I łatwość obsługi: konstrukcje powiązane ze sobą logicznie stanowią integralną całość mającą swoją nazwę łatwiejsze projektowanie aplikacji: kodowanie i kompilowanie specyfikacji oraz ciała odbywa się oddzielnie ukrywanie pewnych informacji: tylko deklaracje w specyfikacji pakietu są widoczne i dostępne dla aplikacji. Konstrukcje prywatne, umieszczone w ciele pakietu, są ukryte i niedostępne. Również kod jest ukryty w ciele pakietu. Trwałość zmiennych i kursorów na czas sesji użytkownika Większa wydajność cały pakiet jest ładowany do pamięci podczas pierwszego wywołania. Późniejsze wywołania nie wymagają dostępu do dysku Pakiety zapobiegają kaskadowym wywołaniom i kolejnym komplikacjom uproszczona hierarcha zależności Przeciążanie procedur i funkcji można utworzyć wiele podprogramów o tej samej nazwie w tym samym pakiecie, każdy z inną liczbą parametrów lub typem danych. Przeciążanie w pakiecie STANDARD pakiet o nazwie STANDARD definiuje środowisko PL/SQL i funkcje wbudowane. Większość wbudowanych funkcji jest przeciążona Przykład: funkcja TO_CHAR FUNCTION to_char (p1 date) return varchar2; FUNCTION to_char( P1 DATE, p2 VARCHAR2) returna varchar2; FUNCTION to_char (P1 number, p2 VARCHAR2) returna varchar2; Podprogram PL/SQL o takiej samej nazwie jak wbudowany program zastępuje standardową deklarację w kontekście lokalnym, chyba że wbudowany podprogram zostanie wywołany z nazwą pakietu 20

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

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

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

Oracle10g: Programowanie w PL/SQL

Oracle10g: Programowanie w PL/SQL Oracle10g: Programowanie w PL/SQL OPIS: Szkolenie dotyczy użytkowników Oracle8i, Oracle9i i Oracle10g. Ten kurs pozwala zrozumieć zalety tego potężnego narzędzia programowania do PL/SQL. Studenci uczą

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

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

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

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

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

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

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

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

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

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

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

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 4 Wyjątki PL/SQL Mechanizmy dotyczące błędów Typy wyjątków Obsługa wyjątków PL/SQL Obsługa błędów predefiniowanych, użytkownika

Bardziej szczegółowo

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

Przygotowanie bazy do wykonywania kopii bezpieczeństwa Przygotowanie bazy do wykonywania kopii bezpieczeństwa Wstęp Wykonywanie kopii bezpieczeństwa i odtwarzanie po awarii jest jednym z kluczowych zadań administratora bazy danych. W momencie wystąpienia awarii

Bardziej szczegółowo

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL; Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku

Bardziej szczegółowo

Archiwizacja i odtwarzanie bazy danych

Archiwizacja i odtwarzanie bazy danych Archiwizacja i odtwarzanie bazy Architektura bazy Oracle %DUWáRPLHM%XáNV]DV bbulk@ii.pb.bialystok.pl Cele archiwizacji i odtwarzania z 2FKURQDED]\GDQ\FKSU]HGUy*Q\PLW\SDPL awarii z =ZLNV]HQLHUHGQLHJRF]DVXSRPLG]\DZDULDPL

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

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

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego Oracle Developer Suite Budowa aplikacji użytkownika końcowego Składniki pakietu Oracle Developer Suite Oracle Forms Builder formularze (aplikacje dostępne z poziomu przeglądarki internetowej, model 3-warstwowy)

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

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

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

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów 2011-01-13

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów 2011-01-13 Plan wykładu BAZY DANYCH II WYKŁAD 7 Pakiety: specyfikacja, ciało, Wywoływanie elementów pakietów, Przeciążanie podprogramów z pakietów, Inicjowanie pakietów, Deklaracje uprzedzające, Funkcje pakietowe

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

(c) Politechnika Poznańska, Instytut Informatyki

(c) Politechnika Poznańska, Instytut Informatyki Architektura systemu Oracle10g (c) Politechnika Poznańska, Instytut Informatyki 2 Zadania administratora bazy danych Instalowanie oprogramowania serwera bazy danych Tworzenie bazy danych Bieżące zarządzanie

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

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

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

Administracja bazy danych Oracle 10g

Administracja bazy danych Oracle 10g Administracja bazy danych Oracle 10g Oracle Database Administration część 1 Cele kursu Kurs daje wskazówki jak za pomocą Oracle Enterprise Manager można wykonać większość podstawowych czynności administracyjnych.

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Spis treści Przedmowa... ix Podziękowania... x Wstęp... xiii Historia serii Inside Microsoft SQL Server... xiii 1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Wymagania SQL Server 2005...

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

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera : Oracle Designer Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera : - modelowanie procesów biznesowych - analizę systemu informatycznego - projektowanie

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

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

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

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Zarządzanie kontami użytkowników w i uprawnieniami

Zarządzanie kontami użytkowników w i uprawnieniami 106 Plan prezentacji 107 Zarządzanie kontami użytkowników w i uprawnieniami Schematy a użytkownicy Tworzenie użytkowników, uwierzytelnianie Przywileje systemowe i obiektowe, role Profile kontrola wykorzystania

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

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

Procedury Funkcje Pakiety. Tworzenie procedury

Procedury Funkcje Pakiety. Tworzenie procedury Podprogramy tworzy się za pomocą instrukcji CREATE. Tworzenie procedury Składnia CREATE [OR REPLACE] PROCEDURE nazwa_procedury [(param1 [IN OUT IN OUT] typ_danych [:= DEFAULT wyrażenie], param2 [IN OUT

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (a) T (b) N (c) N (d) T

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (a) T (b) N (c) N (d) T PRZYKŁADOWE PYTANIA NA EGZAMIN Z PRZEDMIOTU ADMINISTRACJA BAZAMI DANYCH - 2005/2006-1- A Nazwisko i imię: Kierunek: Rok studiów: Pytanie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Punkty 5 5 5

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

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

System Oracle podstawowe czynności administracyjne

System Oracle podstawowe czynności administracyjne 6 System Oracle podstawowe czynności administracyjne Stany bazy danych IDLE nieczynna, pliki zamknięte, procesy tła niedziałaja NOMOUNT stan po odczytaniu pfile-a, zainicjowaniu SGA i uruchomieniu procesów

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

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ę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

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

Zarządzanie strukturą bazy danych Oracle11g

Zarządzanie strukturą bazy danych Oracle11g Zarządzanie strukturą bazy danych Oracle11g Wstęp Baza danych Oracle przechowuje dane użytkowników oraz własne dane słownikowe w następujących strukturach logicznych: przestrzenie tabel segmenty extenty

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli. SQL W JĘZYKU PL/SQL Strukturalny język zapytań SQL określa sposób manipulowania danymi w bazie danych. Konstrukcje proceduralne języka PL/SQL stają się bardziej użyteczne w połączeniu z mocą przetwarzania

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

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

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

ZASTOSOWANIE PROCEDUR, FUNKCJI I PAKIETÓW

ZASTOSOWANIE PROCEDUR, FUNKCJI I PAKIETÓW ZASTOSOWANIE PROCEDUR, FUNKCJI I PAKIETÓW Położenie podprogramów Jak wiemy, podprogramy i pakiety jako bloki nazwane, mogą być składowane w słowniku danych. Podprogram najpierw tworzy się za pomocą polecenia

Bardziej szczegółowo

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Instrukcja korzystania z Virtual Box-a i SQLPLUS-a Wstęp W tej instrukcji zawarte są procedury dotyczące użytkowania VirtualBox-a i SQLPLUS-a w zakresie: 1. Virtual Box a. podłączanie zewnętrznych współdzielonych

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

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

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

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Maciej Szymczak, maj 2001 soft@home.pl Ostatnia aktualizacja: 2012-03-31 1 Plan widoczny podczas całego wykładu Numer slajdu

Bardziej szczegółowo

Tworzenie bazy danych na przykładzie Access

Tworzenie bazy danych na przykładzie Access Tworzenie bazy danych na przykładzie Access Tworzenie tabeli Kwerendy (zapytania) Selekcja Projekcja Złączenie Relacja 1 Relacja 2 Tworzenie kwedend w widoku projektu Wybór tabeli (tabel) źródłowych Wybieramy

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

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

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

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

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

Ć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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Cwiczenie 7. Retrospekcja

Cwiczenie 7. Retrospekcja Cwiczenie 7. Retrospekcja 1. Sprawdzenie środowiska Czas trwania: 15 minut Mechanizmy związane z retrospekcją wymagają spełnienia kilku warunków. W pierwszym ćwiczeniu dokonamy ich weryfikacji. Zakłada

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

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

Ć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

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego 2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

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

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

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

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

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

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

Block Change Tracking

Block Change Tracking Czym jest i czy warto stosować? OPITZ CONSULTING Kraków Przybliżenie technologii i analiza testów Jakub Szepietowski (Młodszy konsultant SE) OPITZ CONSULTING Kraków 2011 Strona 1 Agenda 1. Plik BCT 2.

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane

Bardziej szczegółowo

OBSŁUGA WYJĄTKÓW. Mechanizm języka PL/SQL. Wyjątki:

OBSŁUGA WYJĄTKÓW. Mechanizm języka PL/SQL. Wyjątki: OBSŁUGA WYJĄTKÓW W języku PL/SQL zaimplementowano obsługę błędów za pomocą: mechanizmu wyjątków programów obsługi wyjątków w tzw. sekcji obsługi wyjątków. Wyjątki mogą być związane z: błędami systemu Oracle

Bardziej szczegółowo

Administracja bazy danych Oracle 10g

Administracja bazy danych Oracle 10g Administracja bazy danych Oracle 10g Oracle Database Administration część 4 Pliki związane z bazą danych Oracle Pliki danych (ang. Datafiles) - zawierają dane, które są przechowywane w bazie danych. Plik

Bardziej szczegółowo

Kursory - pobieranie danych z baz danych do programów PL/SQL

Kursory - pobieranie danych z baz danych do programów PL/SQL Kursory - pobieranie danych z baz danych do programów PL/SQL Rozważania będą dotyczyć sposobów pobierania danych z baz danych do programów przechowywanych w pamięci. Interakcja języka PL/SQL z językiem

Bardziej szczegółowo

Tworzenie u ytkownika. ORACLE (Wykład 6) Uwierzytelnianie u ytkowników. Przył czenie u ytkownika do bazy. Nadawanie uprawnie systemowych

Tworzenie u ytkownika. ORACLE (Wykład 6) Uwierzytelnianie u ytkowników. Przył czenie u ytkownika do bazy. Nadawanie uprawnie systemowych ORACLE (Wykład 6) nadawanie uprawnień Tworzenie uŝytkowników bazy, Tworzenie u ytkownika CREATE USER nazwa_uzytkownika IDENTIFIED {BY haslo_uzytkownika EXTERNALLY} [ DEFAULT TABLESPACE przestrzen_tabel

Bardziej szczegółowo

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21 Organizacja zajęć BAZY DANYCH II WYKŁAD 1 Wykładowca dr inż. Agnieszka Bołtuć, pokój 304, e-mail: aboltuc@ii.uwb.edu.pl Liczba godzin i forma zajęć: 15 godzin wykładu oraz 30 godzin laboratorium Konsultacje:

Bardziej szczegółowo