Rozwój standardu SQL i jego implementacji

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

Download "Rozwój standardu SQL i jego implementacji"

Transkrypt

1 Rozdział 21 Rozwój standardu SQL i jego implementacji Streszczenie. Opublikowany w roku 2004 standard SQL:2003, podobnie jak jego poprzednie wersje, wprowadza szereg istotnych zmian. Standard proponuje rozwiązania, które są podstawą rozwoju systemów a jednocześnie jest punktem odniesienia dla oceny implementacji SZBD. Część tych zmian została wymuszona przez niezależnie wprowadzone rozwiązania w istniejących na rynku systemach zarządzania bazami danych. W rozdziale zostały przedstawione etapy rozwoju standardu SQL. Dokonano oceny wpływu standardu SQL na rozwój jego implementacji oraz omówiono elementy mające wpływ na rozwój standardu SQL. 1 Wstęp Język SQL został stworzony na potrzeby pierwszych systemów zarządzania relacyjnymi bazami danych w końcu lat 70-tych ubiegłego wieku. W roku 1982 pojawiły się elementy DML i DDL, by w roku 1986 stać się standardem ANSI, a rok później ISO. Poprawiona wersja standardu została opublikowana w roku 1989 i jest znana pod nazwą SQL-89. Celowo pozostawiono w niej wiele niedomówień, co wymusiło wiele dyskusji nad kształtem standardu, czego rezultatem stało się opublikowanie w roku 1992 standardu SQL-92. Od tego czasu trwa nieprzerwany i intensywny rozwój tego standardu. Kolejne wersje pojawiają się coraz częściej (SQL:1999 po siedmiu latach, SQL:2003 już po pięciu). Pomimo krótkiego czasu, jaki upłynął od publikacji najnowszej wersji standardu, trwają już prace nad jego kolejną wersją. 2 Standard SQL:1999 Rozpowszechnienie się Internetu i rozwój technologii z nim związanych spowodował wzrost wymagań użytkowników w stosunku do aplikacji i systemów. W związku z rozwojem technologii multimedialnych i znacznym zwiększeniem liczby użytkowników usług informatycznych, wzrosły również rozmiary danych przechowywanych w systemach. Jednocześnie nastąpił intensywny rozwój metodyk obiektowego wytwarzania oprogramowania. Miało to wpływ na wzrost złożoności przechowywanych danych. Pojawiły się również Lech Tuzinkiewicz, Jakub Fedyczak: Politechnika Wrocławska, Instytut Informatyki Stosowanej, Wybrzeże Wyspiańskiego 27, Wrocław, Polska lech.tuzinkiewicz@pwr.wroc.pl, jakub.fedyczak@student.pwr.wroc.pl

2 L. Tuzinkiewicz, J. Fedyczak potrzeby tworzenia nowych typów danych, dostosowanych do wymagań użytkowników. Zdalne przetwarzanie danych zwiększyło wymagania w zakresie niezawodności systemów oraz spójności i bezpieczeństwa danych. W konsekwencji zaproponowano rozszerzenie standardu SQL-92, stosownie do potrzeb rynku, czego wynikiem było opublikowanie standardu SQL:1999. Standard SQL:1999 wprowadził szereg zmian w stosunku do wersji SQL-92. Poniżej przedstawiono najważniejsze z nich wg [1], [3]; Cztery nowe typy danych: LARGE OBJECT (LOB), którego warianty to CHARACTER LARGE OBJECT (CLOB) oraz BINARY LARGE OBJECT (BLOB). Typ LOB służy do przechowywania danych o większych rozmiarach. Nie mogą one być używane w klauzulach PRIMARY KEY oraz UNIQUE oraz w klauzulach GROUP BY i ORDER BY, BOOLEAN, typ złożony ARRAY, który umożliwia przechowywanie tabel o stałej długości w pojedynczej kolumnie, typ złożony ROW, który umożliwia deklarowanie podkolumn w wierszach. Typy rozróżnialne (ang. distinct types) ułatwiają weryfikację semantyczną typów. Predykaty SIMILAR oraz DISTINCT. SIMILAR wprowadza możliwość stosowania bardziej złożonych wyrażeń regularnych niż oferuje to predykat LIKE, natomiast DISTINCT w przeciwieństwie do UNIQUE traktuje dwie wartości NULL jako tożsame. Rozszerzenie zakresu widoków, poprzez które możliwa jest zmiana tabel bazowych. Zapytania rekursywne. Subtransakcje (ang. savepoints) umożliwiają wycofanie transakcji do wcześniej ustalonego punktu, bez konieczności wycofania całej transakcji. Role (ang. roles), czyli mechanizm zabezpieczeń, który wprowadza możliwość przyznawania uprawnień grupom użytkowników. Wyzwalacze, czyli mechanizm sterowany zdarzeniami, służący do zapewnienia integralności danych. Typy strukturalne definiowane przez użytkownika. Typy te mogą być zagnieżdżone, posiadają mechanizm polimorfizmu, podlegają dziedziczeniu. Ponadto możliwe jest zdefiniowanie metod operujących na danych tego typu. Typ specjalny REF umożliwia przechowywanie wskaźnika do instancji typu strukturalnego. Wprowadzenie typów LOB wynikało z rosnącej potrzeby przechowywania w bazach danych obszernych treści (w tym multimedialnych) osiągających rozmiary wielu megabajtów. W związku z potrzebą stosowania złożonych typów danych, wprowadzono typy rozróżnialne, typy złożone i rozszerzenia obiektowe. Rosnąca ilość danych i ich złożoność wymuszała istnienie wyrafinowanych mechanizmów wyszukiwania, pozyskiwania i modyfikacji danych. W związku z powyższym wprowadzono m. in. predykaty SIMILAR oraz DISTINCT (używane w klauzuli WHERE), rekursywne kwerendy oraz rozbudowano możliwości wprowadzania zmian danych poprzez widoki. Złożoność operacji oraz rosnąca liczba użytkowników korzystających jednocześnie z dużych baz danych, wymusiła wprowadzenie usprawnień w zakresie przetwarzania transakcji (savepoints), jak i zabezpieczeń dostępu do danych (roles) oraz nowe mechanizmy utrzymania integralności danych (wyzwalacze). 206

3 3 Standard SQL:2003 Rozwój standardu SQL i jego implementacji Nowe wymagania wynikające z rozpowszechnienia hurtowni danych, analiz danych wielowymiarowych (OLAP, Data Mining), a także standardu XML, wymusiły aktualizację standardu SQL. W rezultacie opracowano standard SQL:2003. Poniżej omówiono najważniejsze zmiany wg [2], [3], [4], [5]. Wprowadzono nowe typy danych: BIGINT, typ zgodny z INTEGER oraz SMALLINT, ale o zwiększonym zakresie (zależnym od implementacji). Typ dopuszcza wszystkie operacje, jakie są dozwolone na dwóch poprzednikach. MULTISET - wielozbiór, czyli nieuporządkowana kolekcja elementów, w której dopuszcza się powtórzenia. Standard nie narzuca określonego rozmiaru wielozbioru, może on być zagnieżdżony. Definiowanie wielozbioru odbywa się w dwojaki sposób: MULTISET[1,2,3,4] MULTISET (SELECT oceny FROM kursy) Wielozbiór może zostać użyty jako źródło danych w klauzuli FROM za pomocą operatora UNNEST: SELECT T.A,T.A*2 AS x2 FROM UNNEST(MULTISET[4,3,2,1]) AS T(A) MULTISET wspiera operacje rzutowania na tablicę (ARRAY) lub inny wielozbiór z elementami o zgodnych typach. Wspierane jest także usuwanie duplikatów, zliczanie elementów, wyznaczanie sumy, różnicy oraz iloczynu. Dodane są również nowe funkcje agregujące: COLLECT tworzy wielozbiór z wartości argumentu w każdym wierszu grupy, FUSION tworzy unię wielozbiorów z każdego elementu grupy, INTERSECTION tworzy część wspólną z wielozbiorów z każdego elementu grupy. Oto przykład: Tabela 1. Tabela PRACOWNICY NAZWISKO 'Kowalski' 'Nowak' 'Abacka' JEZYKI MULTISET['angielski','niemiecki','rosyjski'] MULTISET['angielski','szwedzki','niemiecki'] MULTISET['japoński','angielski'] Dla tabeli PRACOWNICY (tabela 1) następująca kwerenda: SELECT COLLECT(NAZWISKO) AS WSZYSCY_PRACOWNICY, FUSION(JEZYKI) AS WSZYSTKIE_JEZYKI, INTERSECTION(JEZYKI) AS WSPOLNE_JEZYKI, FROM PRACOWNICY; zwróci rezultat widoczny w tabeli 2. Tabela 2. Przykład działania funkcji COLLECT, FUSION i INTERSECTION WSZYSCY_PRACOWNICY WSZYSTKIE_JEZYKI WSPOLNE_JEZYKI MULTISET['Kowalski', 'Nowak','Abacka'] MULTISET['angielski', 'angielski','angielski', 'rosyjski','szwedzki', 'japoński','niemiecki', 'niemiecki'] MULTISET[ 'angielski'] 207

4 L. Tuzinkiewicz, J. Fedyczak SQL:2003 wprowadza również następujące funkcje dla MULTISET: CARDINALITY zwraca liczbę elementów SET tworzy zbiór z wielozbioru usuwa duplikaty ELEMENT zwraca element z jednoelementowego wielozbioru UNNEST przekształca wielozbiór w tabelę Przykładowo wyrażenie: 208 SELECT SUM (t.c) FROM UNNEST (MULTISET (2, 3, 5, 7)) AS t(c) zwróci sumę elementów wielozbioru. Z kolei wyrażenie: v1 MULTISET [UNION EXCEPT INTERSECT] [ALL DISTINCT] v2 pozwala uzyskać sumę, róznicę bądź część wspólną wielozbioru. MULTISET dopuszcza dwa operatory porównujące = oraz <>. Oprócz tego dopuszczalne są następujące predykaty: e1 [NOT] MEMBER OF v1 przynależność elementu do wielozbioru, v1 [NOT] SUBMULTISET OF v2 zawieranie się wielozbiorów, v1 IS [NOT] A SET badanie istnienia duplikatów. SQL:2003 wprowadza również funkcje tabelowe, których rezultatem jest ROW MULTISET. Przykład funkcji tabelowej zwracającej tabelę z pracownikami danego wydziału: CREATE FUNCTION PRACOWNICY_WYDZIALU (KODWYDZIALU CHAR(3)) RETURNS TABLE (PRACNR CHAR(6),NAZWISKO VARCHAR(15),IMIE VARCHAR(12)) LANGUAGE SQL READS SQL DATA DETERMINISTIC RETURN TABLE( SELECT PRACNR, NAZWISKO, IMIE FROM PRACOWNICY WHERE PRACOWNICY.WYDZIAL = PRACOWNICY_WYDZIALU.KODWYDZIALU ); gdzie: LANGUAGE SQL określa, że ciało funkcji jest napisane w języku SQL, READS SQL DATA określa, że funkcja pobiera dane z bazy w trybie tylko do odczytu, inaczej mówiąc nie modyfikuje danych DETERMINISTIC określa, że dla jednego zestawu parametrów funkcja zawsze daje te same wyniki. Zdefiniowana funkcja może być użyta w następujący sposób: SELECT * FROM TABLE(PRACOWNICY_WYDZIALU('w-8')); Oprócz funkcji tabelowych, SQL:2003 wprowadza również zmiany w możliwości wywoływania procedur składowanych. Obecnie dopuszcza się przeładowanie funkcji. Funkcje mogą być także deklarowane jako wywoływane z uprawnieniami użytkownika wywołującego (do tej pory użytkownika deklarującego). Standard rozszerza sposób tworzenia tabel w zakresie używania kolumn identyfikujących i generowanych. Ich wartość jest automatycznie wyznaczana w momencie dodawania wiersza. Możliwe stało się wybiórcze skopiowanie struktury, połączone z wypełnieniem nowej tabeli danymi, co pokazuje następujący przykład: CREATE TABLE T5 (D1, D2, D3, D4) AS (SELECT T1.C1, T1.C2, T2.C3, T2.C4 FROM T1, T2 WHERE T1.C2 = T2.C2) WITH DATA; Utworzona za pomocą CREATE TABLE AS tabela jest niezależna od tabeli źródłowej.

5 Rozwój standardu SQL i jego implementacji SQL:2003 wprowadza wyrażenie MERGE, które pozwala w jednym kroku uaktualnić istniejące wiersze i dodać nowe. Przykładowo: tabela AUTORZY zawiera listę wszystkich autorów publikacji wraz z ilością artykułów, a tabela tymczasowa TEGOROCZNE_ PUBLIKACJE opisuje listę tegorocznych publikacji; Tabela 3. Tabela AUTORZY NAZWISKO LICZBA_PUBLIKACJI Kowalski 10 Nowak 15 Iksiński 20 Tabela 4. Tabela TEGOROCZNE_PUBLIKACJE: AUTOR LICZBA_PUBLIKACJI Abacki 3 Nowak 2 Iksiński 1 Smith 3 MERGE INTO AUTORZY AS A USING (SELECT AUTOR,LICZBA_PUBLIKACJI FROM TEGOROCZNE_PUBLIKACJE) AS P ON (A.NAZWISKO = P.AUTOR) WHEN MATCHED THEN UPDATE SET LICZBA_PUBLIKACJI = A.LICZBA_PUBLIKACJI+P.ILOSC_PUBLIKACJI WHEN NOT MATCHED THEN INSERT (NAZWISKO,LICZBA_PUBLIKACJI) VALUES (P.AUTOR,P.LICZBA_PUBLIKACJI); Tabela 5. Tabela AUTORZY po wykonaniu operacji MERGE NAZWISKO LICZBA_PUBLIKACJI Kowalski 10 Nowak 17 Iksiński 21 Abacki 3 Smith 3 SQL:2003 wprowadza generatory sekwencji, które służą do tworzenia unikalnych wartości w obrębie schematu. Mogą one zostać wykorzystane do generowania sztucznych kluczy głównych. Oto przykład deklaracji generatora sekwencji: CREATE SEQUENCE AUTOR_SEQ AS INTEGER START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE NO CYCLE; W celu uzyskania kolejnej wartość z generatora, należy użyć wyrażenia: NEXT VALUE FOR AUTOR_SEQ Oto przykładowe wykorzystanie sekwencji: INSERT INTO AUTOR (ID, NAZWISKO, WIEK) VALUES (NEXT VALUE FOR AUTOR_SEQ,'Kowalski', 45); W przypadku włączenia opcji NO CYCLE, przy przekroczeniu zakresu generowany jest wyjątek. Możliwe jest wpływanie na działanie generatorów poprzez zastosowanie poleceń: ALTER SEQUENCE... DROP SEQUENCE... ALTER SEQUENCE... RESTART WITH

6 L. Tuzinkiewicz, J. Fedyczak SQL:2003 wprowadza typ IDENTITY o funkcjonalności analogicznej do generatora sekwencji, przy czym zbędne staje się jawne wywołanie NEXT VALUE FOR... Przykład zastosowania typu IDENTITY w definicji tabeli: CREATE TABLE PRACOWNICY ( NR INTEGER GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE NO CYCLE ), NAZWISKO VARCHAR (100), WIEK INTEGER ); W tabeli może można zdefiniować tylko jedną kolumnę typu IDENTITY. W przypadku wprowadzania danych do tabeli, wartość kolumny typu IDENTITY jest generowana automatycznie. Nowy standard wprowadził również kolumny generowane. Przykład użycia kolumny generowanej może wyglądać następująco: CREATE TABLE PRACOWNICY ( ID INTEGER, PENSJA DECIMAL(7,2), PREMIA DECIMAL(7,2), WYPLATA GENERATED ALWAYS AS (PENSJA+PREMIA) ); Wartość kolumny WYPLATA jest automatycznie uaktualniana. Kolumny tego typu mogą być indeksowane. SQL:2003 wprowadza funkcje okienkowe, które służą do zawężania widoczności danych w obrębie tabeli. Są to RANK, DENSE_RANK, PERCENT_RANK, CUME_DIST, ROW_NUMBER. Oto przykład zastosowania funkcji RANK, DENSE_RANK oraz ROWNUM (wynik w tabeli 6): SELECT IMIE, PENSJA, RANK() OVER (ORDER BY PENSJA DESC) AS RANK, DENSE_RANK() OVER (ORDER BY PENSJA DESC) AS DENSE_RANK, ROW_NUMBER() OVER (ORDER BY PENSJA DESC) AS ROWNUM FROM PRACOWNICY; gdzie: RANK zwraca pozycję względną wymaga uporządkowania; wartości równe mają tę samą wartość RANK, DENSE_RANK analogiczne do RANK, ale gwarantuje ciągłość wartościowania, ROW_NUMBER numeruje kolejne wartości; równe wartości są numerowane niedeterministycznie. Tabela 6. Rezultat przykładowego zastosowania funkcji okienkujących IMIE PENSJA RANK DENSE_RANK ROWNUM Krzysztof Sylwia Tadeusz Marek Łukasz Jolanta

7 Rozwój standardu SQL i jego implementacji SQL:2003 wprowadza kwerendy na próbkach danych. Ich użycie skraca czas uzyskania wyniku zapytania kosztem dokładności. Możliwe są dwie metody próbkowania: BERNOULLI prawdopodobieństwo pojawienia się wiersza w próbce jest niezależne od pojawienia się innych wierszy SYSTEM prawdopodobieństwo może zależeć od innych wierszy zawartych w próbce Poniższa kwerenda wyznacza średnią zarobków w poszczególnych działach: SELECT DZIAL, SUM(PENSJA) * 10 FROM PRACOWNICY TABLESAMPLE BERNOULLI (10) REPEATABLE (5) GROUP BY DZIAL; gdzie opcjonalny parametr klauzuli REPEATABLE określa ziarno dla wartości losowych. Ustawienie konkretnej wartości parametru zapewnia powtarzalność wyników przy kolejnych wywołaniach kwerendy dla tego samego zestawu danych. Ponadto rozbudowano standard o wiele nowych funkcji matematycznych i statystycznych [4]. Zmiany dokonane w standardzie SQL:2003 obejmują również przypadki usunięcia elementów o znikomym znaczeniu (typy BIT oraz BIT VARYING). Omówione zmiany pokazują, że rozwój standardu SQL zmierza w kierunku wspierania dynamicznie rozwijających się dziedzin. Funkcje tabelowe mogą posłużyć do pozyskania danych ze źródeł o różnych strukturach (np. w systemie innego producenta, bądź plikach zewnętrznych), co może być wykorzystane w fazie ekstrakcji danych w procesie ETL. Innym przykładem wsparcia tego procesu jest operacja MERGE, która jest pomocna w fazie ładowania danych do baz analitycznych. Z kolei funkcje okienkowe (RANK, DENSE_RANK itp.), kwerendy operujące na próbkach danych oraz nowe funkcje agregujące mają zastosowanie w procesach analitycznych. Inną, istotną ze względu na zakres zastosowań technologią, jest standard XML, który określa zasady przechowywania, przetwarzania i wymiany różnego rodzaju dokumentów. 4 Wpływ standardu SQL na systemy zarządzania bazami danych Zarówno systemy komercyjne jak i typu open-source, rozwijają się równolegle z rozwojem standardu. Poziom zgodności ze standardem jest jednym z kryteriów oceny jakości produktu. W konsekwencji standard wymusza rozwój systemów zarządzania relacyjnymi bazami danych (SZRBD), co nie oznacza, że wszystkie jego elementy są implementowane. Trywialnym przykładem jest brak implementacji typów DATE i TIME w systemie MS SQL Server, który oferuje jedynie typ DATETIME. Innym przykładem dotyczącym tego systemu jest brak implementacji typu BOOLEAN. Kolejny przykład to ujednolicenie instrukcji dotyczących ról (ang. roles) z instrukcjami dotyczącymi uprawnień użytkowników w systemie PostgreSQL. Przykładem może być także kolejność wykonywania wyzwalaczy w tym systemie. Twórcy zdecydowali się na złamanie zaleceń standardu wyzwalacze są uruchamiane w kolejności alfabetycznej a nie w kolejności utworzenia. Projektanci często uznają, że standard traktuje daną kwestię niespójnie bądź niekompletnie i decydują się na inny, niestandardowy sposób rozwiązania problemu. Możliwe jest również, że nowa wersja standardu wprowadza rozwiązania powszechnie implementowane w istniejących produktach. Przykładem są kolumny typu IDENTITY, które wprowadził SQL:2003. Taka funkcjonalność istniała już wcześniej w takich produktach jak MySQL (atrybut auto_increment), PostgreSQL-typ SERIAL i BIGSERIAL (dyskretnie obsługiwany przez automatycznie tworzony generator sekwencji), MS SQL Server (atrybut IDENTITY). Kolejnym przykładem są wyzwalacze ustandaryzowane przez SQL:

8 L. Tuzinkiewicz, J. Fedyczak Zostały wprowadzone przez Oracle w wersji 7.0 wydanej w 1992 roku. Standard bazuje wówczas na rozwiązaniach stosowanych w implementacjach (wyzwalacze zgodne ze składnią zaproponowaną przez Oracle). W przypadku implementacji komercyjnych trudno jest dostosować istniejące mechanizmy do nowej wersji standardu, ponieważ może to spowodować utratę kompatybilności wstecznej. Powoduje to niechęć klientów do zakupu nowej wersji wynikającą ze zwiększonych kosztów jej wdrożenia. Przekłada się to na wymierne straty finansowe dla producenta. Sytuacja ma się inaczej w projektach open source. Tutaj twórcy nie są związani finansowo z użytkownikami systemów bazodanowych. W dokumentacji PostgreSQL można znaleźć dokładne zestawienie obsługiwanych oraz nieobsługiwanych części standardu. Zmiany zachodzą więc znacznie szybciej. Podczas instalacji nowej wersji często konieczna jest całkowita konwersja fizycznej postaci baz danych. W celu zilustrowania omówionych sytuacji, w tabeli 7 i 8 zebrano podsumowanie obsługi rozszerzeń wprowadzonych przez najnowsze wersje standardu w systemie MS SQL Server Tabela 7. Obsługa nowych elementów standardu SQL:1999 w MS SQL Server 2005 Zmiany w SQL:1999 MS SQL Server 2005 Typy LOB (LARGE Udostępnia do tego celu typy varbinary(max) oraz OBJECTS) CLOB oraz image dla danych binarnych oraz typy text, ntext BLOB i varchar(max) dla ciągów znakowych. Nie zaleca się stosowania typów text, ntext oraz image, ponieważ zostaną one usunięte w kolejnych wersjach systemu. Typ BOOLEAN Brak typu BOOLEAN. Możliwe jest zastosowanie zamiennika np. w postaci typu BIT (usuniętego w standardzie SQL:2003). Typ złożony ARRAY Brak typu ARRAY. Typ złożony ROW Nie obsługiwany. Predykaty SIMILAR Brak obsługi. oraz DISTINCT Typy rozróżnialne (ang. distinct types) Rozszerzenia w zakresie widoków modyfikowalnych Zapytania rekursywne Subtransakcje (ang. savepoints) Role (ang. roles) Wyzwalacze Elementy obiektowe Typ specjalny REF Brak obsługi. Istnieje możliwość tworzenia własnych typów (poprzez Aliased Data Types), ale nie jest wymuszana ich zgodność. Brak implementacji rozszerzenia. Modyfikacje danych poprzez widok są możliwe tylko w zakresie przewidzianym przez standard SQL-92. Obsługiwane, ale bez konieczności dodawania słowa kluczowego RECURSIVE. Obsługiwane. Składnia niezgodna ze standardem (SAVE TRANSACTION... i ROLLBACK TRANSACTION... zamiast SAVEPOINT... i ROLLBACK TO...). Brak obsługi RELEASE SAVEPOINT. Obsługiwane. Obsługiwane. Brak obsługi. Możliwość definiowania własnych typów (klas) z użyciem wykonywanego po stronie serwera kodu platformy.net. Brak obsługi. 212

9 Rozwój standardu SQL i jego implementacji Tabela 8. Obsługa nowych elementów standardu SQL:2003 w MS SQL Server 2005 Zmiany w SQL:2003 MS SQL Server BIGINT Obsługiwany (64bit). MULTISET Brak obsługi. Funkcje tabelowe Implementowane w postaci TVF (Table-Valued Function). Istnieją ograniczenia w typach zwracanych kolumn brak możliwości zastosowania typu TIMESTAMP, ciągów znakowych innych niż UNICODE. Brak obsługi ograniczenia NOT NULL. CREATE TABLE LIKE Brak obsługi. CREATE TABLE AS Brak obsługi. MERGE Brak obsługi. Generatory sekwencji Brak obsługi. Kolumny IDENTITY Obsługiwane poprzez atrybut identity. Kolumny Implementowane w postaci computed column, ale generowane z ograniczeniami i niezgodnie ze standardem Funkcje okienkowe Obsługiwane zgodnie ze standardem Kwerendy Implementowane, ale bez obsługi próbkowania typu próbkowane BERNOULLI. Usunięcie typów BIT Nadal dostępny (często zastępuje brakujący typ i BIT VARYING Rozszerzenia związane z obsługą XML BOOLEAN). Obsługiwane. 5 Wnioski Od momentu powstania, standard SQL podlega stałemu rozwojowi przy aktywnym udziale producentów SZRBD. Zmiany w kolejnych wersjach odzwierciedlają tendencje w technologiach informatycznych. Standard może być podstawą do oceny przenaszalności baz danych pomiędzy różnymi środowiskami. Znajomość standardu jest dobrym przygotowaniem pojęciowym do poznawania i wykorzystywania różnych systemów baz danych. Standard SQL może być językiem specyfikacji modeli logicznych w projektowaniu baz danych, bowiem jest niezależny implementacyjnie, a jednocześnie określa technologie. Literatura 1. Eisenberg A., Melton J.: SQL:1999, formerly known as SQL3 2. Eisenberg A., Melton J., Kulikarni K., Michels J., Zemke F.: SQL:2003 Has Been Published 3. ISO/IEC :1999, Information technology -- Database languages -- SQL - Part 2: Foundation (SQL/Foundation) 4. ISO/IEC :2003 Information technology -- Database languages -- SQL -- Part 2: Foundation (SQL/Foundation) 5. ISO/IEC :2003 Information technology -- Database languages -- SQL -- Part 14: XML- Related Specifications (SQL/XML) 213

10

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

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

Bardziej szczegółowo

Bazy danych 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

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

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

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

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

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

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

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

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

Bazy danych. Dr inż. Paweł Kasprowski

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

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

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

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Bardziej szczegółowo

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

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

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

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

Bazy danych 5. Samozłaczenie SQL podstawy

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

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

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

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

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

Bardziej szczegółowo

Bazy danych 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

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

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

Bardziej szczegółowo

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

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

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

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

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

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

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

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

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

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

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

Bardziej szczegółowo

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

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

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

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

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

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

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

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

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

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

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

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

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

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok; Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie

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

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Kolekcje Operacje na kolekcjach Testowanie kolekcji Kolekcje w bazie danych Funkcje tabelaryczne Kolekcje wielopoziomowe - 2 -

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

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Bardziej szczegółowo

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

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

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

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

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

Bardziej szczegółowo

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,

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

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

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Wstęp do problematyki baz danych Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. I Jesień 2014 1 / 17 Plan wykładu 1 Bazy danych 1 Motywacja

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

LAB 3 (część 1 Projektu)

LAB 3 (część 1 Projektu) Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 3 (część 1 Projektu) Na zajęciach należy zaprojektować schemat bazy danych oraz przygotować dokument zawierający: Temat: Autor: 1. Opis 2.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Bazy danych 4. SQL podstawy. P. F. Góra

Bazy danych 4. SQL podstawy. P. F. Góra Bazy danych 4. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 SQL:2006 (dialekt) SQL:2008 (dialekt) SQL:2011 (dialekt)

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

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie

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

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

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

Bardziej szczegółowo

Tworzenie baz danych i tabel

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

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

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

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

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

Bardziej szczegółowo

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

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

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

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

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

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

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 17. Obiektowość w Oracle 1 Obiektowa baza danych Obiektowe bazy danych (OBD) powstały początkowo jako rozwinięcie programowania obiektowego. Bazy danych zorientowane obiektowo przechowują

Bardziej szczegółowo