Obiekty bazy danych DB2

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

Download "Obiekty bazy danych DB2"

Transkrypt

1 Obiekty bazy danych DB2 Obiektem bazy danych DB2 jest każdy składnik bazy danych DB2, jak: schematy, tabele, widoki, indeksy, sekwencje, aliasy, wyzwalacze, funkcje użytkownika (UDF-y), procedury zapamiętane, pakiety, itp. Obiekty bazodanowe zapewniają kontrolę nad tym, w jaki sposób wszystkie dane użytkownika (oraz niektóre dane systemowe) są przechowywane i zorganizowane w bazie DB2. Baza danych składa się ze schematów, których zadaniem jest logiczne grupowanie obiektów. Schemat jest kolekcją obiektów bazy danych i umożliwia ich klasyfikację i grupowanie na poziomie logicznym. Może zawierać tabele, indeksy, widoki, wyzwalacze, funkcje, itp. Nazwy obiektów w bazie danych są z reguły dwuczłonowe - pierwsza część to nazwa schematu (tzw. kwalifikator), druga część to nazwa obiektu, co umożliwia ich jednoznaczną identyfikację, np. aniaf.employee - aniaf to nazwa schematu, w którym znajduje się obiekt (w tym przypadku tabela) employee. Odwołując się do obiektu używamy składninazwa_schematu.nazwa_obiektu. Baza danych składa się ze schematów, których zadaniem jest logiczne grupowanie obiektów. Schemat jest kolekcją obiektów bazy danych i umożliwia ich klasyfikację i grupowanie na poziomie logicznym. Może zawierać tabele, indeksy, widoki, wyzwalacze, funkcje, itp. Nazwy obiektów w bazie danych są z reguły dwuczłonowe - pierwsza część to nazwa schematu (tzw. kwalifikator), druga część to nazwa obiektu, co umożliwia ich jednoznaczną identyfikację, np. aniaf.employee - aniaf to nazwa schematu, w którym znajduje się obiekt (w tym przypadku tabela) employee. Odwołując się do obiektu używamy składninazwa_schematu.nazwa_obiektu. Jeżeli nie podamy nazwy schematu, DB2 użyje domyślnej nazwy schematu, która jest przechowywana w zmiennej systemowej CURRENT SCHEMA. Zmienna ta jest ustawiana na początku danej sesji i domyślnie jest równa loginowi danego użytkownika (wartość zmiennej CURRENT SCHEMA można zmienić za pomocą instrukcji SET CURRENT SCHEMA, a odczytać za pomocą VALUES CURRENT SCHEMA). Schemat można stworzyć na dwa sposoby: niejawnie lub jawnie.

2 Schemat można stworzyć na dwa sposoby: niejawnie lub jawnie. Tworzenie schematu w sposób niejawny: taka sytuacja ma miejsce, gdy użytkownik tworzy inny obiekt, np. tabelę, i nie poda, w jakim schemacie obiekt ma zostać stworzony, wówczas używany jest domyślny schemat tego użytkownika (schemat ten zostanie w tym momencie stworzony, jeżeli nie powstał wcześniej; domyślnie, DB2 używa nazwy użytkownika (dokładniej - wartości zmiennej CURRENT SCHEMA) jako nazwy tak stworzonego schematu), np. CREATE TABLE test(id int); Niejawne tworzenie schematu ma też miejsce, gdy podczas tworzenia obiektu podamy nazwę schematu, którego nie ma w bazie, np. CREATE TABLE kadry.pracownik(nr int, imie varchar(15), nazwisko varchar(25)); Zostanie wówczas utworzony schemat kadry (o ile go wcześniej nie było). Uwaga. Właścicielem schematu utworzonego w sposób niejawny jest SYSIBM. Drugi sposób to jawne utworzenie schematu instrukcją CREATE SCHEMA <nazwa> AUTHORIZATION <nazwa_użytkownika>; Uwaga. Właścicielem tak utworzonego schematu jest użytkownik podany w instrukcji CREATE SCHEMA. Właściciel schematu ma uprawnienia do tworzenia, zmiany i usuwania obiektów wewnątrz schematu, usuwania schematu oraz może przekazywać te uprawnienia innym użytkownikom. Drugi sposób to jawne utworzenie schematu instrukcją CREATE SCHEMA <nazwa> AUTHORIZATION <nazwa_użytkownika>; Uwaga. Właścicielem tak utworzonego schematu jest użytkownik podany w instrukcji CREATE SCHEMA. Właściciel schematu ma uprawnienia do tworzenia, zmiany i usuwania obiektów wewnątrz schematu, usuwania schematu oraz może przekazywać te uprawnienia innym użytkownikom. W kolejnym kroku, można tworzyć obiekty wewnątrz wcześniej utworzonego schematu. CREATE SCHEMA test AUTHORIZATION db2admin tworzy schemat test, użytkownik db2admin jest właścicielem tego schematu; CREATE TABLE test.country (nr INT, nazwa VARCHAR(30)) tworzy tabelę country w obrębie schematu test.

3 Informacja, jakie schematy znajdują się w bazie danych, przechowywana jest w widoku systemowymsyscat.schemata. Aby wyświetlić, jakie schematy znajdują się w bazie danych, można użyć instrukcji SELECT schemaname, owner, definer FROM SYSCAT.SCHEMATA Uprawnienia na poziomie schematów można odczytać z widoku systemowegosyscat.schemaauth. Uwaga. Grupa PUBLIC posiada uprawnienie CREATEIN dla schematu stworzonego w sposób niejawny (uprawnienie to pozwala na tworzenie obiektów wewnątrz schematu; jest to domyślne ustawienie dla baz danych, które nie zostały stworzone z opcją RESTRICTIVE). Aby uzyskać listę tabel schematu, używamy instrukcji db2 list tables for schema <nazwa> Aby uzyskać listę tabel dla wszystkich schematów w bazie: db2 list tables for all Aby uzyskać listę tabel schematu, używamy instrukcji db2 list tables for schema <nazwa> Aby uzyskać listę tabel dla wszystkich schematów w bazie: db2 list tables for all Korzyści ze stosowania schematów: Eliminują konieczność żmudnego przeszukiwania całej bazy danych w celu znalezienia danego obiektu - schematy w sposób logiczny grupują obiekty. Nazwy obiektów muszą być unikalne w obrębie schematu (natomiast mogą się powtarzać w bazie danych). Ułatwiają kontrolę dostępu do danych - właściciel schematu może kontrolować, którzy użytkownicy mogą tworzyć, zmieniać lub usuwać obiekty w obrębie danego schematu.

4 Wbudowane typy danych DB2 Tabele Dane w relacyjnej bazie danych znajdują się w tabelach, składających się ze zbioru wierszy oraz kolumn. Każda kolumna tabeli ma określony typ danych. W bazie DB2 mamy dwa rodzaje tabel: tabele bazowe, definiowane przez użytkownika, które przechowują stałe dane, oraz tabele tymczasowe, służące do tymczasowego przechowywania danych, na potrzeby danej aplikacji. Tabele tymczasowe są tworzone w sposób jawny przez aplikację w razie potrzeby, oraz usuwane automatycznie w momencie, gdy aplikacja zamknie ostatnie połączenie z bazą danych. Tabele tymczasowe są przydatne, jeżeli aplikacja potrzebuje stworzyć wiele raportów używających tych samych danych. Wówczas użycie tabeli tymczasowej i skopiowanie do niej zbioru rekordów może być bardziej efektywne, niż wielokrotne wysyłanie zapytań SQL. Tworzenie tabeli tymczasowej: DECLARE GLOBAL TEMPORARY TABLE. Składnia tej instrukcji jest analogiczna, do składni instrukcji CREATE. Można też utworzyć tabelę tymczasową na wzór istniejącej tabeli bazowej, używając opcjilike <nazwa_tabeli_bazowej>. DECLARE GLOBAL TEMPORARY TABLE tempemployee LIKE employee Aby tabela tymczasowa zachowała wiersze po wykonaniu instrukcji COMMIT, należy dodać klauzulęon COMMIT PRESERVE ROWS (domyślnie wiersze są usuwane). Tabela tymczasowa istnieje tylko w obrębie danej sesji. Aby można było odwołać się to niej z poziomu polecenia SQL, należy użyć kwalifikatorasession. Uwaga. musi istnieć tymczasowa przestrzeń tabel użytkownika, aby można było tworzyć tabele tymczasowe. Przykład: tworzenie tabeli tymczasowej, o takich samych kolumnach, jak tabela employee, zachowującej wiersze po wykonaniu instrukcji COMMIT i kopiowanie do niej wierszy z tabeli employee: DECLARE GLOBAL TEMPORARY TABLE tempemployee LIKE employee ON COMMIT PRESERVE ROWS; INSERT INTO SESSION.tempemployee SELECT * FROM employee WHERE salary < 3000; SELECT * FROM SESSION.tempemployee; Po wykonaniu instrukcji COMMIT i zamknięciu połączenia z bazą, tabela tempemployee przestaje istnieć.

5 Tworzenie tabel bazowych Tworzenie tabel bazowych Tabele tworzymy instrukcjącreate TABLE, np. CREATE TABLE STAFF ( ID SMALLINT NOT NULL, NAME VARCHAR(9), DEPT SMALLINT NOT NULL WITH DEFAULT 10, JOB CHAR(5), YEARS SMALLINT, SALARY DECIMAL(7,2), COMM DECIMAL(7,2) WITH DEFAULT 15); Definiując kolumnę tabeli, można użyć wartości domyślnej DEFAULT dla tej kolumny. DB2 umożliwia też generowanie wartości za pomocą opcji GENERATED. W sytuacji, gdy klucz główny tabeli jest pojedynczą kolumną, zawierającą kolejne liczby całkowite, lub gdy wartość w kolumnie ma być wyliczana na podstawie innych kolumn, można skorzystać z automatycznego generowania wartości. Tworzenie tabel bazowych W definicji tabeli oprócz definicji kolumn można też określić ograniczenia (constraints): unikalności i integralności danych. Mamy trzy główne typy ograniczeń: Ograniczenia unique zapewnia unikalność kluczy (głównego oraz unikalnych) tabeli. Ograniczenia referencyjne wymusza ograniczenia referencyjne dotyczące operacji wstawiania, aktualizacji i usuwania, zapewnia, że wartości wszystkich kluczy obcych są odpowiednie. Ograniczenia check zapewnia zgodność danych ze zdefiniowanym dla danej tabeli ograniczeniem CHECK. Automatyczne generowanie wartości Wykorzystanie do generowania wartości kluczy głównych - używamy klauzuligenerated ALWAYS AS IDENTITY w definicji kolumny (kolumna IDENTITY powinna być: typu całkowitoliczbowego, może być tylko jedna w tabeli, DB2 niejawnie nadaje jej ograniczenie NOT NULL, nie można zdefiniować dla niej DEFAULT): CREATE TABLE EMPLOYEE (EMPNO INT GENERATED ALWAYS AS IDENTITY, NAME CHAR(10)); Wartości w kolumnie EMPNO są generowane automatycznie przez DB2 (domyślnie zaczynając od 1, z krokiem 1).

6 Automatyczne generowanie wartości Automatyczne generowanie wartości Wykorzystanie do generowania wartości kluczy głównych - używamy klauzuligenerated ALWAYS AS IDENTITY w definicji kolumny (kolumna IDENTITY powinna być: typu całkowitoliczbowego, może być tylko jedna w tabeli, DB2 niejawnie nadaje jej ograniczenie NOT NULL, nie można zdefiniować dla niej DEFAULT): Można zmienić krok lub wartość początkową: CREATE TABLE EMPLOYEE ( EMPNO INT GENERATED ALWAYS AS IDENTITY(START WITH 100, INCREMENT BY 10)), NAME CHAR(10)); Uwaga. zdefiniowanie kolumny w ten sposób nie jest równoznaczne z zapewnieniem jej unikalności. W tym celu należy nałożyć na kolumnę klucz główny lub indeks unikalny. Jeżeli wartości w kolumnie w tabeli są wyliczane na podstawie wartości w innych kolumnach, można skorzystać z automatycznego generowania wartości: CREATE TABLE EMPLOYEE ( EMPNO INT GENERATED ALWAYS AS IDENTITY, NAME CHAR(10), SALARY INT, BONUS INT, PAY INT GENERATED ALWAYS AS (SALARY+BONUS) ); Ograniczenia tabeli Ograniczenie unique: każda kolumna wchodząca w skład klucza unikalnego musi być zadeklarowana jako NOT NULL; ograniczenie typu unique definiujemy w instrukcji CREATE TABLE lub ALTER TABLE za pomocą klauzuli: PRIMARY KEY lub UNIQUE. w momencie tworzenie ograniczenia, zakładany jest automatycznie indeks unikalny, który służy do zapewnienia unikalności danych. Ograniczenie referencyjne: umożliwia zdefiniowanie związków pomiędzy tabelami; w tabeli podrzędnej określany jest klucz obcy, odwołujący się do klucza głównego lub unikalnego w tabeli nadrzędnej; zapewnia, że każda wartość w kluczu obcym odpowiada jednej z wartości klucza z tabeli nadrzędnej. Istnienie ograniczenia referencyjnego wpływa na działanie instrukcji INSERT, UPDATE oraz DELETE, wykonywanych na tabeli podrzędnej oraz nadrzędnej. Mianowicie, aby dana instrukcja była poprawna, musi spełniać określone reguły.

7 Reguły dla INSERT: wstawianie wierszy do tabeli nadrzędnej - bez ograniczeń; do tabeli podrzędnej można wstawiać tylko takie wiersze, dla których wartość klucza obcego odpowiada wartości klucza w tabeli nadrzędnej; jeżeli w jednym zapytaniu INSERT wstawiamy kilka wierszy, i dla jednego z nich jest naruszone ograniczenie, żaden wiersz nie zostanie wstawiony. Reguły dla DELETE: kiedy usuwamy wiersz z tabeli nadrzędnej, menadżer bazy danych sprawdza, czy są jakieś wiersze zależne w tabeli podrzędnej, odpowiadające usuwanym wierszom; jeżeli tak, to wówczas wykonywana jest jedna z następujących akcji (która z akcji ma być podjęta jest określane w definicji tabeli podrzędnej). Akcje te są definiowane za pomocą opcjion DELETE <akcja>. RESTRICT nie można usuwać wiersza z tabeli nadrzędnej, jeżeli istnieje odwołanie w tabeli podrzędnej; NO ACTION opcja domyślna; CASCADE DELETE automatycznie usuwane są wiersze w tabeli podrzędnej, zależne od usuwanego wiersza w tabeli nadrzędnej; SET NULL wartości klucza obcego w wierszach zależnych w tabeli podrzędnej są ustawiane na NULL (o ile dana kolumna akceptuje wartości puste). Reguły dla UPDATE: Menadżer bazy danych zapobiega zmienianiu wartości klucza w tabeli nadrzędnej w wierszu, dla którego istnieją wiersze zależne w tabeli podrzędnej. Wartości klucza obcego w tabeli podrzędnej nie można zmienić na wartość (niepustą), która nie występuje w kluczu w tabeli nadrzędnej. Dopuszczalne sa dwie opcje (określane za pomocą klauzulion UPDATE <akcja>): RESTRICT blokuje możliwość zmiany wartości klucza w tabeli nadrzędnej, jeżeli istnieje odwołanie w tabeli podrzędnej; The update for the parent key will be rejected if a row in the dependent table matches the original values of the key. NO ACTION blokuje operację zmiany wartości klucza w tabeli nadrzędnej, jeżeli po zakończeniu operacji UPDATE istnieje wiersz w tabeli podrzędnej nie mający odpowiednika w tabeli nadrzędnej; opcja domyślna. Ograniczenia CHECK: zapewniają spójność danych na poziomie tabeli. Przy każdej operacji INSERT, UPDATE ograniczenie CHECK jest sprawdzane. Jeżeli nie jest spełnione, instrukcja zostanie odrzucona. Ograniczenia CHECK można definować w instrukcji CREATE TABLE lub ALTER TABLE, np.: ALTER TABLE pracownik ADD CONSTRAINT check_stanowisko CHECK (stanowisko IN ( Inżynier, Księgowy, Kierownik )); Ograniczenia CHECK umożliwiają implementację reguł sprawdzania poprawności danych bezpośrednio w bazie, zamiast w każdej z aplikacji używającej bazy danych. Informacje o istniejących ograniczeniach CHECK i ich definicje są przechowywane w katalogu systemowym w tabelach SYSIBM.SYSCHECKS oraz SYSCAT.CHECKS.

8 Ograniczenia informacyjne Wszystkie wcześniej omawiane ograniczenia były sprawdzane i wymuszane przez DB2 na rzecz każdego wstawianego czy modyfikowanego wiersza. Może to prowadzić do dużego obciążenia systemu, szczególnie gdy wstawiamy (zmieniamy) duże ilości rekordów mających ograniczenia referencyjne. Jeżeli dane są wprowadzane do bazy za pomocą aplikacji, która weryfikuje ich poprawność, aby zwiększyć wydajność systemu, można zamiast normalnych ograniczeń użyć ograniczeń informacyjnych. Ograniczenia tego typu nie są sprawdzane przez DB2, ale system wykorzystuje je do optymalizacji zapytań SQL. Uwaga. jeżeli zrezygnujemy z więzów integralności na rzecz ograniczeń informacyjnych, zyskujemy szybsze działanie systemu, ale musimy mieć pewność, że wprowadzane dane spełniają te ograniczenia. Ograniczenia informacyjne Przykład zastosowania ograniczeń informacyjnych: CREATE TABLE pracownik (nr INT NOT NULL, płeć CHAR(1) NOT NULL CONSTRAINT płećok CHECK (płeć IN ( M, K )) NOT ENFORCED ENABLE QUERY OPTIMIZATION, zarobki INT NOT NULL, CONSTRAINT zarobkiok CHECK (zarobki BETWEEN 0 AND ) NOT ENFORCED ENABLE QUERY OPTIMIZATION ); W tabeli pracownik są dwa ograniczenia informacyjne:płećok i zarobkiok. W momencie dodania wiersza do tabeli, nie będą sprawdzane (odpowiada za to opcjanot ENFORCED), ale będą używane przez optymalizator zapytań (opcjaenable QUERY OPTIMIZATION). Ograniczenia informacyjne Jeżeli w tabeli użyto opcji NOT ENFORCED, zachowanie instrukcji INSERT może być zaskakujące, np. ta instrukcja wykona się bez błędu: INSERT INTO pracownik VALUES (1, M, 54200), (2, K, 28000), (3, M, 21240), (4, K, 89222), (5, Q, 34444), (6, A,132333); Pracownik nr 5 ma niewłaściwą płeć, nr 6 - płeć i zarobki spoza zakresu, ale ponieważ użyto opcji NOT ENFORCED, DB2 pozwolił na wstawienie tych wierszy. Natomiast zapytanie SELECT * FROM pracownik WHERE płeć= Q zwróci 0 wierszy, ponieważ użyto opcjienable QUERY OPTIMIZATION, więc optymalizator zapytań uznaje, że w kolumnie płeć mogą być tylko dwie wartości ( K lub M ). Aby wyłączyć tą opcję: ALTER TABLE pracownik ALTER CHECK płećok DISABLE QUERY OPTIMIZATION Zmiana definicji tabeli InstrukcjaALTER TABLE umożliwia zmiany dotyczące kolumn tabeli: dodanie kolumny ALTER TABLE <nazwa> ADD COLUMN <definicja> usunięcie kolumny ALTER TABLE <nazwa> DROP COLUMN <nazwa> zmianę typu kolumny ALTER TABLE <nazwa> ALTER COLUMN <nazwa> SET DATA TYPE <typ danych> usunięcie NOT NULL ALTER TABLE <nazwa> ALTER COLUMN <nazwa> DROP NOT NULL nałożenie NOT NULL ALTER TABLE <nazwa> ALTER COLUMN <nazwa> SET NOT NULL te zmiany wymagają wydania instrukcjireorg TABLE zanim będzie możliwa zmiana danych w tabeli.

9 Widoki i zmiany ograniczeń tabeli: nałożenie ograniczeniaalter TABLE <nazwa> ADD CONSTRAINT <definicja> usunięcie ograniczeniaalter TABLE <nazwa> DROP CONSTRAINT <nazwa> zmianę ograniczeniaalter TABLE <nazwa> ALTER CONSTRAINT <definicja> Widok (inaczej perspektywa) jest definiowany w oparciu o dowolne zapytanie SELECT, umożliwia zapisanie tego zapytania a następnie odwołanie się do niego w dowolnej chwili, bez konieczności ponownego wpisywania całej instrukcji. Widok nie przechowuje danych, jedynie definicja widoku jest zapisana w bazie. Widoki Widok (inaczej perspektywa) jest definiowany w oparciu o dowolne zapytanie SELECT, umożliwia zapisanie tego zapytania a następnie odwołanie się do niego w dowolnej chwili, bez konieczności ponownego wpisywania całej instrukcji. Widok nie przechowuje danych, jedynie definicja widoku jest zapisana w bazie. Widoki Widok (inaczej perspektywa) jest definiowany w oparciu o dowolne zapytanie SELECT, umożliwia zapisanie tego zapytania a następnie odwołanie się do niego w dowolnej chwili, bez konieczności ponownego wpisywania całej instrukcji. Widok nie przechowuje danych, jedynie definicja widoku jest zapisana w bazie. Widoki są wykorzystywane m.in., aby: ograniczyć dostęp do pewnych, bardziej istotnych lub wrażliwych, danych, zmienić sposób prezentacji danych, zaprezentować dane zapisane w różnych tabelach jako całość.

10 Widoki Widoki Widok może być tylko do odczytu (read-only) lub modyfikowalny. Widoki modyfikowalne umożliwiają zmianę danych w tabelach bazowych. Widok tworzy się instrukcją CREATE VIEW nazwa_widoku, usuwa za pomocą DROP VIEW nazwa_widoku. Widok może być tylko do odczytu (read-only) lub modyfikowalny. Widoki modyfikowalne umożliwiają zmianę danych w tabelach bazowych. Widok tworzy się instrukcją CREATE VIEW nazwa_widoku, usuwa za pomocą DROP VIEW nazwa_widoku. CREATE VIEW lista(nr, imie, nazwisko, dzial) AS SELECT t1.id, t1.imie, t1.nazwisko, t2.dzial FROM osoba t1 JOIN dzial t2 ON(t1.nr_dzialu=t2.nr_dzialu) Widoki zastosowania Widoki zastosowania 1. Wygoda użytkowników. Ułatwienie pracy poprzez utworzenie widoków zawierających często używane lub skomplikowane zapytania. 2. Możliwość prezentowania danych w takiej postaci, która odpowiada danemu użytkownikowi (można w ten sposób zmienić nazwy kolumn na bardziej czytelne dla użytkownika, przeprowadzić na danych pewne wstępne operacje, np. dane liczbowe można zaokrąglić do wymaganej dokładności, usunąć zbędne spacje, itp.). 3. Ukrywanie efektów normalizacji poprzez tworzenie widoków zawierających złączenia tabel. 4. Ograniczenie dostępu do danych. Zamiast nadać użytkownikowi uprawnienia do tabeli, można nadać uprawnienia do korzystania z widoków zawierających tylko te dane, które są potrzebne danemu użytkownikowi, np. dla danej tabeli można stworzyć widok zawierający tylko wybrane kolumny (lub wiersze) i w ten sposób ukryć pozostałe dane przed użytkownikiem. 5. Zapewnienie danym bezpieczeństwa. Widoki mogą być użyte do stworzenia warstwy abstrakcji pomiędzy użytkownikiem a tabelami bazowymi, w oparciu o które zostały zbudowane.

11 Klasyfikacja widoków W zapytaniach SELECT wszystkie widoki funkcjonują jak tabele. Dla widoków modyfikowalnych dopuszczalne jest także przeprowadzanie operacji na danych. Poprzez widoki modyfikowalne mamy możliwość zmiany danych w tabelach bazowych. Widoki można podzielić ze względu na typ operacji, na jakie pozwalają. Wyróżniamy widoki: Deletable Updatable Insertable Read-only Powyższa klasyfikacja wskazuje rodzaj operacji SQL, który jest dozwolony dla widoku (DELETE, UPDATE, INSERT). Widoki pierwszych trzech typów określamy jako modyfikowalne. Widok jest read-only, jeżeli nie spełnia chociaż jednej z reguł określonych dla widoków deletable. Kolumna READONLY w widoku systemowym SYSCAT.VIEWS wskazuje, czy widok jest read-only (R). Widoki modyfikowalne Warunki, jakie musi spełniać widok modyfikowalny, zależą od tego, którą z operacji DELETE, UPDATE czy INSERT chcemy wykonać. Ogólna reguła jest taka: każdemu wierszowi widoku musi odpowiadać dokładnie jeden wiersz w tabeli. Widok spełniający poniższe kryteria będzie widokiem deletable: 1. dane pochodzą z jednej tabeli; 2. nie zawiera klauzuli DISTINCT; 3. nie zawiera GROUP BY, HAVING; 4. nie zawiera funkcji agregacji (na liście SELECT); 5. nie zawiera operacji na zbiorach (UNION, EXCEPT, INTERSECT); 6. nie jest oparty o inny widok niemodyfikowalny. Widoki modyfikowalne Aby poprzez widok można było modyfikować dane z użyciem operacji INSERT lub UPDATE, to oprócz podanych wcześniej warunków, widok nie może zawierać wyrażenia na liście SELECT; aby można było wykonać INSERT na widoku, to każda kolumna NOT NULL bez wartości domyślnej w tabeli, o którą oparty jest widok, musi być w tym widoku odwzorowana. Widoki modyfikowalne Aby poprzez widok można było modyfikować dane z użyciem operacji INSERT lub UPDATE, to oprócz podanych wcześniej warunków, widok nie może zawierać wyrażenia na liście SELECT; aby można było wykonać INSERT na widoku, to każda kolumna NOT NULL bez wartości domyślnej w tabeli, o którą oparty jest widok, musi być w tym widoku odwzorowana. Uwaga. Jeżeli wykonujemy operację INSERT na widoku modyfikowalnym, to do tych kolumn, które nie są wymienione w widoku, zostaną wpisane ich wartości domyślne (o ile są zdefiniowane), NULL w przeciwnym przypadku.

12 Widoki modyfikowalne Aby poprzez widok można było modyfikować dane z użyciem operacji INSERT lub UPDATE, to oprócz podanych wcześniej warunków, widok nie może zawierać wyrażenia na liście SELECT; aby można było wykonać INSERT na widoku, to każda kolumna NOT NULL bez wartości domyślnej w tabeli, o którą oparty jest widok, musi być w tym widoku odwzorowana. Uwaga. Jeżeli wykonujemy operację INSERT na widoku modyfikowalnym, to do tych kolumn, które nie są wymienione w widoku, zostaną wpisane ich wartości domyślne (o ile są zdefiniowane), NULL w przeciwnym przypadku. Przykład widoku modyfikowalnego: CREATE OR REPLACE VIEW projektanci AS SELECT empno, firstnme, lastname, workdept,edlevel, hiredate, job, salary FROM employee WHERE job= DESIGNER ; Uwaga. W przypadku modyfikacji danych poprzez widok, dane są zmieniane w tabeli bazowej, w oparciu o którą widok został stworzony. Widoki modyfikowalne z klauzula WITH CHECK OPTION Jeżeli widok modyfikowalny został utworzony z klauzulą CHECK, to nie można dodać ani zmienić danych w tym widoku w taki sposób, że dane te nie będą już w tym widoku widoczne. Widoki modyfikowalne z klauzula WITH CHECK OPTION Poniższe instrukcje modyfikują lub wstawiają dane do widoku projektanci, nie naruszając warunku z klauzuli WHERE: Jeżeli widok modyfikowalny został utworzony z klauzulą CHECK, to nie można dodać ani zmienić danych w tym widoku w taki sposób, że dane te nie będą już w tym widoku widoczne. Zdefiniujmy widokprojektanci z opcją CHECK. CREATE OR REPLACE VIEW projektanci AS SELECT empno, firstnme, lastname, workdept,edlevel, hiredate, job, salary FROM employee WHERE job= DESIGNER WITH CHECK OPTION; UPDATE projektanci SET salary=salary*1.5; INSERT INTO projektanci VALUES(200341, Lolek, Nowak, D11,11, SYSDATE, DESIGNER, 2000);

13 Indeksy Poniższe instrukcje modyfikują lub wstawiają dane do widoku projektanci, nie naruszając warunku z klauzuli WHERE: UPDATE projektanci SET salary=salary*1.5; INSERT INTO projektanci VALUES(200341, Lolek, Nowak, D11,11, SYSDATE, DESIGNER, 2000); Natomiast ta instrukcja narusza warunek WHERE z definicji widoku, a ponieważ widok był zdefiniowany z klauzulą CHECK, taka instrukcja nie jest poprawna. UPDATE projektanci SET job= MANAGER WHERE empno=000150; Indeksy są mechanizmami umożliwiającymi szybką lokalizację danego wiersza w tabeli. Ich działanie można porównać do roli indeksów w książce - umożliwiają szybkie znalezienie miejsca, gdzie dana informacja jest zapisana, bez potrzeby przeglądania całej tabeli. Indeksy Indeksy Indeksy są mechanizmami umożliwiającymi szybką lokalizację danego wiersza w tabeli. Ich działanie można porównać do roli indeksów w książce - umożliwiają szybkie znalezienie miejsca, gdzie dana informacja jest zapisana, bez potrzeby przeglądania całej tabeli. Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Indeksy są wykorzystywane w celu: wymuszenia unikalności danych; jeżeli dla kolumny (lub grupy kolumn) w tabeli został założony indeks unikalny, dane w tej kolumnie nie moga się powtarzać. zwiększenia efektywności; indeks daje szybką i efektywną metodę znalezienia danego wiersza w tabeli zawierającej dużo danych; z reguły, dostęp do danych jest realizowany szybciej z wykorzystaniem indeksu, niż bez.

14 Indeksy Indeksy Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Idea działania indeksów. W momencie, kiedy dane są dodawane do tabeli, umieszczane są na końcu tabeli. Nie jest określony żaden porządek wierszy w tabeli. W sytuacji, kiedy chcemy wyszukać w tabeli określony wiersz, każdy z wierszy tabeli musi zostać sprawdzony. Indeksy umożliwiają uzyskanie dostępu do danych w tabeli w określonej kolejności. Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Idea działania indeksów. Klucz indeksu to kolumna (lub grupa kolumn), dla których dany indeks został zdefiniowany. Klucz może, ale nie musi, być unikalny. Indeks jest uporządkowany zgodnie z kolejnością wartości jego klucza. Z kolei wartość klucza udostępnia wskaźnik na odpowiedni wiersz w tabeli. Indeks umożliwia więc szybszy dostęp do danych w tabeli. Indeksy Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Idea działania indeksów. Klucz indeksu to kolumna (lub grupa kolumn), dla których dany indeks został zdefiniowany. Klucz może, ale nie musi, być unikalny. Indeks jest uporządkowany zgodnie z kolejnością wartości jego klucza. Z kolei wartość klucza udostępnia wskaźnik na odpowiedni wiersz w tabeli. Indeks umożliwia więc szybszy dostęp do danych w tabeli. Indeksy Indeks jest uporządkowanym zbiorem kluczy, z których każdy wskazuje na wiersz w tabeli. Indeks jest tworzony w oparciu o jedną lub kilka kolumn tabeli, ale jest zapisany i przechowywany jako osobny obiekt. Definicja indeksu: CREATE [UNIQUE] INDEX nazwa_indeksu ON nazwa_tabeli (kolumna1 [ASC/DESC], kolumna2 [ASC/DESC],...) Opcje indeksu: indeks może być rosnący (ASC, domyślnie) albo malejący (DESC); klucze indeksu mogą być unikalne (opcja UNIQUE) lub nie; do stworzenia indeksu można użyć kilku kolumn (taki indeks nazywamy złożonym).

15 Indeksy Indeksy Uwagi 1. Nie ma możliwości zmiany definicji istniejącego indeksu. Należy go usunąć (instrukcja DROP INDEX) i stworzyć od nowa. 2. Jeżeli w tabeli, dla której tworzymy indeks są już dane, w momencie tworzenia indeksu zostaną też utworzone odpowiednie wpisy w indeksie. Jeżeli w tabeli nie ma jeszcze danych, tworzony jest jedynie opis indeksu. 3. Indeks unikalny pozwala na zapisanie wartości NULL w kolumnie, zatem samo nałożenie indeksu unikalnego na kolumnę nie jest równoznaczne ze zdefiniowaniem tej kolumny jako klucz główny. W tym celu należy nałożyć na kolumnę jeszcze ograniczenie NOT NULL. Indeksy traktują wartość NULL jako równą innej wartości NULL. Stąd jeżeli na kolumnie został założony indeks unikalny, to w tej kolumnie może być tylko jedna wartość NULL. Przykłady: 1. Indeks unikalny o nazwie UNIQUE_NAM dla tabeli PROJECT, na polu PROJNAME. Zadaniem tego indeksu jest zapewnienie, że dla żadnych dwóch wierszy z tej tabeli nazwa projektu (PROJNAME) nie może być taka sama. Wpisy w indeksie są posortowane w sposób domyślny, czyli rosnąco. CREATE UNIQUE INDEX UNIQUE_NAM ON PROJECT(PROJNAME) 2. Indeks złożony o nazwie JOB_BY_DEPT dla tabeli EMPLOYEE. Porządek wpisów w indeksie: nazwy stanowisk (JOB) są uporządkowane rosnąco w obrębie każdego działu (WORKDEPT). CREATE INDEX JOB_BY_DEPT ON EMPLOYEE (WORKDEPT, JOB) Indeksy dwukierunkowe Zalecenia dotyczace tworzenia indeksów OpcjaALLOW REVERSE SCANS w defnicji indeksu umożliwia stworzenie indeksu dwukierunkowego. Taki indeks pozwala na przeglądanie wartości zarówno w porządku rosnącym, jak i malejącym. Od wersji 9, każdy tworzony w DB2 indeks jest domyślnie tworzony z opcjąallow REVERSE SCANS. Zalety stosowania tego typu indeksów: usprawnia wyliczanie wartości funkcji MIN i MAX; jest wykorzystywany przy przeszukiwaniu danych zarówno w porządku rosnącym, jak i malejącym; zamiast tworzyć dla danej tabeli dwa indeksy: rosnący i malejący, wystarczy stworzyć jeden. Uwaga. DB2 automatycznie tworzy indeksy unikalne dla kluczy głównych i unikalnych. Indeksy te są tworzone w sposób domyślny, tzn. jako indeksy dwukierunkowe. Indeksy są używane albo w celu przyspieszenia dostępu do danych, albo aby zapewnić unikalność danych. Indeksy przyspieszają odczyt danych, ale spowalniają operacje modyfikacji danych (każda zmiana danych w tabeli pociąga za sobą uaktualnienie indeksów dla tej tabeli). Tworząc indeks należy wziąć pod uwagę, czy dany indeks poprawi wydajność bazy. Należy przeanalizować strukturę tabeli i rodzaj często wykonywanych zapytań. Automatycznie są tworzone indeksy dla kluczy głównych i unikalnych (chyba, że indeks taki został wcześniej stworzony przez użytkownika).

16 Zalecenia dotyczace stosowania indeksów Zalecenia dotyczace stosowania indeksów Warto nakładać indeksy na kolumny, które w często wykonywanych zapytaniach często występują w klauzuli WHERE lub GROUP BY; względem których często sortujemy; tworzą klucz obcy lub są często wykorzystywane w złączeniach; Warto nakładać indeksy na kolumny, które w często wykonywanych zapytaniach często występują w klauzuli WHERE lub GROUP BY; względem których często sortujemy; tworzą klucz obcy lub są często wykorzystywane w złączeniach; Kolejność kolumn w indeksie złożonym jest istotna z punktu widzenia wykorzystania indeksu do przyspieszenia wykonywania zapytań, np. indeks zdefiniowany poniżej CREATE INDEX lista_osob ON employee(first_name, last_name) nie będzie wykorzystany w zapytaniu SELECT first_name, last_name FROM employee ORDER BY last_name, first_name Zalecenia dotyczace stosowania indeksów Aliasy Indeks unikalny można tworzyć z opcją INCLUDE: CREATE UNIQUE INDEX COUNTRIES_PK ON COUNTRIES (ID) INCLUDE (NAME); Kolumna NAME jest włączona do indeksu, ale nie jako kolumna unikalna. Wpisy w indeksie są sortowane tylko ze względu na kolumnę CODE. W zapytaniach odwołujących się tylko do kolumn CODE i NAME wystarczy odczytać tylko dane z indeksu, co zwiększa wydajność takich zapytań. Uwaga. Indeksy zajmują przestrzeń na dysku. Ilość zajętej przestrzeni zależy od długości kolumn klucza indeksu i liczby poindeksowanych wierszy, która rośnie wraz z dodawaniem kolejnych wierszy do tabeli. Należy to brać pod uwagę podczas planowania rozmiaru bazy danych. Alias jest alternatywną nazwą tabeli lub widoku (lub innego aliasu). Aliasy tworzymy instrukcją CREATE ALIAS nazwa_aliasu FOR nazwa_obiektu; Obiektem może być tabela, widok lub inny alias. Nazwa aliasu nie może być taka sama, jak nazwa istniejącej w bazie tabeli, widoku lub aliasu. Aliasy są widoczne publicznie, żadne specjalne uprawnienia nie są wymagane aby korzystać z aliasu (ale oczywiście trzeba mieć odpowiednie uprawnienia do obiektu, na który alias wskazuje, aby mieć do niego dostęp). Zastosowanie aliasów: jeżeli zapytanie SQL odwołuje się do tabeli poprzez alias, a nie rzeczywistą nazwę, a zachodzi potrzeba odwołania się do innej tabeli, to wystarczy zmienić definicję aliasu tak, aby wskazywał na inną tabelę, natomiast nie ma potrzeby zmiany zapytania SQL.

17 Sekwencje Sekwencje generują unikalne liczby na poziomie całej bazy danych. Wygenerowane dane można wykorzystać jako wartości kluczy głównych. W odróżnieniu od kolumn identyfikujących, sekwencje nie są zależne od tabeli. Sekwencje Sekwencje generują unikalne liczby na poziomie całej bazy danych. Wygenerowane dane można wykorzystać jako wartości kluczy głównych. W odróżnieniu od kolumn identyfikujących, sekwencje nie są zależne od tabeli. Przykład użycia sekwencji: Niech tabela dzial będzie utworzona następująco: CREATE TABLE dzial (nr int, nazwa varchar(15)); Tworzymy sekwencję myseq (z wartością początkową 10, krokiem 1, nie cykliczną): CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE; Sekwencje Sekwencje generują unikalne liczby na poziomie całej bazy danych. Wygenerowane dane można wykorzystać jako wartości kluczy głównych. W odróżnieniu od kolumn identyfikujących, sekwencje nie są zależne od tabeli. Przykład użycia sekwencji: Niech tabela dzial będzie utworzona następująco: CREATE TABLE dzial (nr int, nazwa varchar(15)); Tworzymy sekwencję myseq (z wartością początkową 10, krokiem 1, nie cykliczną): CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE; Wstawienie danych pobranych z sekwencji do tabeli: INSERT INTO dzial VALUES (nextval for myseq, IT ); INSERT INTO dzial VALUES (nextval for myseq, HR ); INSERT INTO dzial VALUES (nextval for myseq, PR ); Sekwencje Sekwencje generują unikalne liczby na poziomie całej bazy danych. Wygenerowane dane można wykorzystać jako wartości kluczy głównych. W odróżnieniu od kolumn identyfikujących, sekwencje nie są zależne od tabeli. Przykład użycia sekwencji: Niech tabela dzial będzie utworzona następująco: CREATE TABLE dzial (nr int, nazwa varchar(15)); Tworzymy sekwencję myseq (z wartością początkową 10, krokiem 1, nie cykliczną): CREATE SEQUENCE myseq START WITH 10 INCREMENT BY 1 NO CYCLE; Wstawienie danych pobranych z sekwencji do tabeli: INSERT INTO dzial VALUES (nextval for myseq, IT ); INSERT INTO dzial VALUES (nextval for myseq, HR ); INSERT INTO dzial VALUES (nextval for myseq, PR ); Komenda PREVVAL zwraca aktualną wartości sekwencji, podczas gdy NEXTVAL dostarcza wartość następną.

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

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Autor: Joanna Karwowska

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

Bardziej szczegółowo

Zarzadzanie transakcjami. Transakcje

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

Bardziej szczegółowo

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

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

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

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

Relacyjne bazy danych. Podstawy SQL

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

Bardziej szczegółowo

SQL (ang. Structured Query Language)

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

Bardziej szczegółowo

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

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

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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 5. SQL praca z tabelami 2

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Fizyczna struktura bazy danych w SQL Serwerze

Fizyczna struktura bazy danych w SQL Serwerze Sposób przechowywania danych na dysku twardym komputera ma zasadnicze znaczenie dla wydajności całej bazy i jest powodem tworzenia między innymi indeksów. Fizyczna struktura bazy danych w SQL Serwerze

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

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

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

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

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

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

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów VIII

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

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

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

Bardziej szczegółowo

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Bardziej szczegółowo

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

Ć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

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Bardziej szczegółowo

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

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Wyzwalacze. Anna Fiedorowicz Bazy danych 2 Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

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

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

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

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

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

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Bazy danych 9. SQL Klucze obce Transakcje

Bazy danych 9. SQL Klucze obce Transakcje Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

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

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

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

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

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

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

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

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

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

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

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

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka

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 składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też

Bardziej szczegółowo

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

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

Oracle PL/SQL. Paweł Rajba.

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

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

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

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

Wykład 05 Bazy danych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Aby stworzyć widok, należy mieć uprawnienia do wszystkich obiektów do których odnosi się widok.

Aby stworzyć widok, należy mieć uprawnienia do wszystkich obiektów do których odnosi się widok. Widoki i sekwencje Widoki Jeśli często wykonujemy jakiej zapytanie do bazy danych, np. z użyciem wielu tabel lub po prostu długie, możemy zdefiniować widok. Korzystanie z niego będzie o wiele wygodniejsze.

Bardziej szczegółowo

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą

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