Język definicji danych (Data Definition Language)

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Projektowanie bazy danych
SQL – Strukturalny język zapytań
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Język SQL Część II.
BD-LAB4 Wojciech Pieprzyca
Podejście relacyjne Podejście relacyjne opiera się na wykorzystaniu do przedstawiania danych modelu relacyjnego i zarządzania nimi matematycznego modelu.
WPROWADZENIE DO BAZ DANYCH
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 8: Perspektywy i sekwencery.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Relacyjny Model Danych
Język definicji danych (Data Definition Language)
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
POWTÓRZENIE Główne elementy składni SQL: Zasady ogólne
POWTÓRZENIE Metodologia : Pojęcia:
Wykład 5 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Rozproszone bazy danych – 1 Replikacja danych
Język SQL (Structured Query Language) DDL (Data Definition Language)
Bezpieczeństwo baz danych
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
OPERACJA DZIELENIA W SQL
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Przetwarzanie w oknie - nowa siła zapytań
MySQL – ODBC - ACCESS.
Administracja serwerem bazy danych Oracle 11g Zarządzanie obiekami bazy danych Wykład nr 4 Michał Szkopiński.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
SQL – Structured Query Language (1)
Systemy baz danych Wykład 1
MySQL bazy danych dla witryny
Andrzej Macioł Bazy danych – SQL – cz. 1. Andrzej Macioł Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą
Tworzenie typów danych i tabel
SQL - Structured Query Language
Język SQL – przypomnienie
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Komendy SQL do pracy z tabelami i bazami
PL/SQL – dalsza wędrówka
SQL – część II.
Projektowanie bazy danych
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Temat 1: Strukturalny język zapytań SQL
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Systemy Baz Danych Wykład III
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
SQL – JDD (DDL) Język definicji danych (Data Definition/Description Language)
1 Wykład Asercje, wyzwalacze i prawa. 2 Elementy aktywne bazy Chcielibyśmy, aby baza danych zapewniała nam pewne własności lub niezmienniki.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Oracle Data Modeler (4.1) Tworzenie modelu danych – specyfikacja wymagań informacyjnych (na dane) Tworzenie modelu procesów – specyfikacja wymagań funkcyjnych.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Oracle Data Modeler ( ) Wiele opcji dostępnych poprzez prawy przycisk myszy zarówno na elementach nawigatora obiektów (z lewej strony), jak i na.
1 Definicja danych: Do utworzenia tabeli służy instrukcja CREATE TABLE, wymagająca podania nazwy tworzonej tabeli, nazwy każdej kolumny w tej tabeli, typu.
Projekt „NEW-TECH Program rozwoju praktycznych kompetencji nauczycieli zawodów branż nowych technologii” jest współfinansowany przez Unię Europejską Projekt.
Transformacja modelu EER do modelu relacyjnego
Widoki (views) - Perspektywy:
DDL język definiowania danych
Indeksy.
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Własności relacji: Baza danych jest zbiorem relacji, o następujących własnościach: każda relacja w bazie danych jest jednoznacznie określona przez swoją.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Język definicji danych (Data Definition Language) SQL – JDD (DDL) Język definicji danych (Data Definition Language)

SQL - język definicji danych Elementy bazy danych Dziedziny, typy Tabele, perspektywy Indeksy, sekwencje Więzy ogólne (asercje) Baza danych, schemat, katalog Wyzwalacze i procedury użytkownika Użytkownicy, role, uprawnienia Zbiory znaków, zestawienia, translacje Obiekty wywodzące się ze standardu: dziedziny, tabele, perspektywy, asercje; Obiekty standardu „wymuszone” przez praktykę: indeksy, użytkownicy, role i uprawnienia, zbiory znaków, zestawienia i translacje; Obiekty wywodzące się z praktyki: typy, baza danych, schemat , katalog, wyzwalacze i procedury; 15 marzec 2005 SQL - język definicji danych

Dziedziny standardowa Logiczna (TRUE, FALSE, UNKNOWN); Znakowe: char(n) lub character(n), varchar(n) lub character varying(n); Bitowe: bit(n), bit varying(n); Liczowe dokładne: int lub integer, shortint, numeric(n,p), decimal(n,p); Liczbowe zmiennopozycyjne: float(p), real, double; Daty i czasu: date, time, timestamp [WITH TIME ZONE] Przedziały czasu: interval p to k; Inne: text lub clob, blob. CAST – przekształcanie typu. 15 marzec 2005 SQL - język definicji danych

Dziedzina użytkownika CREATE DOMAIN <NAZWA> AS <dziedzina zdef.> [DEFAULT <wartość domyślna>][<więzy dziedzinowe>] <wartość domyślna>::= <stała> | NULL | <f. bez arg.> <więzy dziedzinowe>::= [CONSTRAINT <nazwa więzu>] CHECK ( VALUE { IN (v1,v2,...,vk) | IS NOT NULL | <operator porównania> <wartość>| BETWEEN <w1> AND <w2>}) Problemy: - możliwość zmiany dziedziny w trakcie działania i związana z tym kontrola poprawności dziedzin; - warunek nałożony na wartości z dziedziny nie może powodować problemów z „dynamiczną” kontrolą poprawności, czyli nie powinien zawierać odwołań do funkcji, zawartości tabel (?); - określanie zgodności dziedzin i możliwości porównywania elementów różnych dziedzin (np. porównanie nazwiska i adresu). TYP można uznać za „techniczny” odpowiednik dziedziny, ale nie logiczny. 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Tabela CREATE TABLE <nazwa tabeli> ( <kolumna1> <dziedzina1> [<więzy kolumny 1>], <kolumna2> <dziedzina2> [<więzy kolumny 2>],... [<więzy tabeli>],... ) 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Więzy kolumny [CONSTRAINT <nazwa więzu>] NOT NULL | DEFAULT <wartość domyślna> | PRIMARY KEY | UNIQUE | CHECK <warunek> | REFERENCES <tabela> [(<kolumna>)] [<akcja referencyjna>] [<integralność referencyjna>] <wartość domyślna> - stała, funkcja typu: USER, CURRENT_DATE,… <warunek> - powinien zawierać tylko odwołania do stałych, czyli być obliczalny na podstawie sprawdzanej wartości bez odwoływania się do innych elementów b.d. Jego dopuszczalna postać, to: CHECK data>”31-12-1980” lub CHECK kierunek IN (‘inf’,’mat’) Problem: - co się dzieje, gdy dla krotek już wstawionych warunek przestaje być prawdziwy (niedobra sytuacja, należy jej unikać lub przynajmniej kontrolować, np. jeżeli w pewnym momencie ograniczymy kierunek studiów do „mat” i „inf”, to powinniśmy być pewni, że w bazie nie ma innych wartości. Ograniczenie: Czasami kluczem obcym może być tylko klucz główny w tabeli „obcej” (to, że musi to być jakiś klucz, to oczywiste); 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Akcja referencyjna ON { DELETE | UPDATE } { RESTRICT | NO ACTION | CASCADE | SET NULL | SET DEFAULT } Przykłady: Zaliczenie.przedmiot REFERENCES Przedmiot(nazwa) ON DELETE CASCADE ON UPDATE CASCADE Prowadzący.dziedzina REFERENCES Przedmiot(nazwa) ON DELETE SET NULL ON UPDATE CASCADE (?) Wypożyczenie.nrC REFERENCES Czytelnik(nrC) ON DELETE RESTRICT ON UPDATE CASCADE 15 marzec 2005 SQL - język definicji danych

Integralność referencyjna Domyślnie – jeżeli jakaś kolumna klucza obcego jest pusta, to integralność referencyjna nie jest kontrolowana; MATCH FULL – jeśli wszystkie kolumny klucza obcego są puste, to integralność referencyjna nie jest kontrolowana; przeciwnie – musi istnieć odpowiedni rekord w tabeli nadrzędnej; MATCH PARTIAL – rekord podrzędny pasuje do rekordu nadrzędnego, jeśli zgadza się z nim na niepustych polach klucza obcego. Przykłady: Indeks,przedmiot -> ocenaKoncowa MATCH FULL i NOT NULL Miasto, Ulica, nrDomu -> kodPocztowy MATCH PARTIAL i wszystko oprócz miasta – nie NOT NULL 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Więzy tabeli [CONSTRAINT <nazwa więzu>] PRIMARY KEY (<lista kolumn>) | UNIQUE (<lista kolumn>) | FOREIGN KEY (<lista kolumn>) REFERENCES <tabela>(<lista kolumn>) [<akcja referencyjna>][<integralność referencyjna>]| CHECK <warunek> [DEFERRED | IMMEDIATE] PRIMARY KEY .. REFERENCES – analogicznie jak dla kolumny, ale gdy dotyczą kilku atrybutów; CHECK – może dotyczyć całek krotki, np. stypSoc<stypNauk; 15 marzec 2005 SQL - język definicji danych

Więzy – moment kontroli Spełnienie więzu może być kontrolowane natychmiast po wprowadzeniu, aktualizacji rekordu z tabeli (IMMEDIATE); Może być jednak odroczone do momentu wypełnienia transakcji (DEFERRED); Zmiany więzów nie muszą powodować kontroli całej aktualnej zawartości bazy danych pod kątem ich poprawności (naruszenia więzów dla innych rekordów, które zostały wcześniej wstawione do bazy). 15 marzec 2005 SQL - język definicji danych

Perspektywa (tabela wirtualna) CREATE VIEW <nazwa perspektywy> [<nazwa kolumny>,...] AS <zapytanie SELECT definiujące perspektywę> [ WITH [CASCADED|LOCAL] CHECK OPTION] Przykłady: CREATE VIEW tytulyDostepne(tytul, autor, sygnatura, [nkr]) AS SELECT tytul, autor sygn FROM ks NATURAL JOIN egz WHERE sygn NOT IN ( SELECT sygn FROM WYP); CREATE VIEW egzWypozyczone AS SELECT * FROM egz WHERE sygn IN (SELECT sygn FROM WYP); Korzystanie z perspektyw: (prawie) jak z normalnych tabel bazowych SELECT tytul FROM tytulyDostepne WHERE autor=‘Prus’; SELECT tytul, autor FROM ks NATURAL JOIN egz WHERE sygn IN (SELECT sygn FROM egzWypozyczone); Zastosowanie perspektyw: - uproszczenie zapytań; - dostosowanie do potrzeb konkretnego użytkownika; - zabezpieczenie danych przed nieuprawnionym użyciem (potem); 15 marzec 2005 SQL - język definicji danych

Perspektywa - implementacja Perspektywa materializowana – zapytanie definiujące perspektywę jest wyliczane i przechowywane jako tabela przez SZBD. Zapytania do perspektywy są realizowane przez wgląd w tę tabelę. Modyfikacje perspektywy mogą być przeprowadzane przez: ponowne obliczenie zapytania; aktualizację tylko tych rekordów, które dotknęła modyfikacja. Problem: Może być trudne do wykrycia, które modyfikacje mają wpływa (i jaki) na zawartość perspektywy. 15 marzec 2005 SQL - język definicji danych

Perspektywa – implementacja Rozkład – jest metodą polegającą na przekształceniu zapytania dotyczącego perspektywy tak, by dotyczyło tabel bazowych, a warunki wyboru pochodzące z definicji perspektywy zostały włączone w definicję tabeli. Przykład: SELECT tytul FROM tytulyDostepne WHERE autor=‘Prus’; => SELECT tytul FROM ks NATURAL JOIN egz WHERE autor=‘Prus’ AND sygn IN (SELECT sygn FROM wyp); Ogólnie: SELECT A,B1 FROM T,V WHERE Ftv; V: SELECT B1,B2 FROM T1 WHERE Tv; Podstawienie: SELECT A,B1 FROM T,T1 WHERE Fty AND Fv; 15 marzec 2005 SQL - język definicji danych

Perspektywa - modyfikacje Perspektywa jest modyfikowalna, gdy dotyczy jednej tabeli i występują w niej wszystkie kolumny niepuste (z nałożonym warunkiem NOT NULL lub PRIMARY KEY) z tej tabeli. Własność modyfikowalności można rozciągnąć na perspektywy powstałe z kilku tabel, o ile w tabeli wynikowej występują kolumny kluczy i kolumny niepuste z wszystkich tabel, które są złączane w celu utworzenia perspektywy. Uwaga: W perspektywie tytulyDostepne należy dodać klucz tabeli ks i ma szanse być modyfikowalna; Perspektywa egzWypożyczone jest modyfikowalna (?) – teoretycznie; 15 marzec 2005 SQL - język definicji danych

Perspektywa - modyfikacje Perspektywa nie może być modyfikowalna, gdy: zawiera operator DISTINCT; zwraca kolumnę wyliczaną; jest definiowana przez zapytanie grupujące; jest definiowana przez zapytanie zawierające UNION, EXCEPT lub INTERSECT; Modyfikacja może być niebezpieczna, gdy w warunku WHERE zapytania definiującego występuje zapytanie zagnieżdżone odwołujące się do tabeli występującej w klauzuli FROM tego zapytania, czyli warunek selekcji w perspektywie jest zależny od aktualnej zawartości tabeli, na bazie której jest zdefiniowana perspektywa Ad. ograniczenie Perspektywa: osoby, które mieszkają w tym samym mieście, co Abacki; Select nazwisko from osoba where miasto in (select miasto from osoba where nazwisko=‘Abacki’); Zmiana miejsca zamieszkania Abackiego, ma daleko idące skutki; Książki, które są w bibliotece w jednym (więcej niż jednym) egzemplarzu; 15 marzec 2005 SQL - język definicji danych

Perspektywa – WITH CHECK OPTION rekord wstawiony poprzez perspektywę musi należeć do perspektywy; rekord zmodyfikowany poprzez perspektywę nadal musi należeć do perspektywy. CASCADED – wstawienie lub modyfikacja rekordu do perspektywy lub perspektywy na jej podstawie zdefiniowanej, nie może spowodować zniknięcia rekordu z danej perspektywy; LOCAL – rekord może zniknąć po modyfikacji z perspektywy, o ile zniknie z tabeli, na podstawie której jest zdefiniowana perspektywa. Osoby mieszkające w tym samym mieście co Abacki (with check option) Książki w jednym egzemplarzu (cascaded) Egzemplarze wypożyczone – logiczne jest, by dopisanie egzemplarza do grona wypożyczonych spowodowało jego pojawienie się w tabeli wyp. 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Indeks CREATE [UNIQUE] INDEX <nazwa indeksu> ON <nazwa tabeli> (<lista atrybutów>) [USING { HASH | BTREE | RTREE }] 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Sekwencje CREATE SEQUENCE <nazwa> [INCREMENT <przyrost>] [START <wartoscPocz>] [MINVALUE <wartoscMin>][MAXVALUE <wartoscMaks>][CYCLE|NOCYCLE] [ORDER|NOORDER] … Zastosowanie: nextval(‘sekw1’); setval(‘sekw1’,wartosc); 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Zmiany w schemacie BD DROP – usunięcie danego obiektu (DOMAIN, TABLE, VIEW, INDEX, SEQUENCE) z opcją RESTRICT lub CASCADE ALTER – modyfikacja definicji; możliwe operacje, to: [DROP | ADD ] COLUMN] [DROP | ADD ] CONSTRAINT [DROP | SET ] [DEFAULT...][CHECK...] 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Więzy ogólne – asercje CREATE ASSERTION <nazwa więzu> CHECK <warunek> 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Przykład CREATE DOMAIN TNazwa AS VARCHAR(20) DEFAULT ‘???’; CREATE DOMAIN TPłeć AS CHAR DEFAULT ‘M’ CHECK VALUE IN (‘K’, ‘M’); CREATE SEQUENCE kolejny; 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Przykład cd. CREATE TABLE Osoba ( nazwisko Tnazwa NOT NULL, imię Tnazwa, KM Tpłeć, PESEL CHAR(11) UNIQUE NOT NULL, PRIMARY KEY (nazwisko, imię)); 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Przykład cd.2 CREATE TABLE Samochód (nrRej VARCHAR(10) PRIMARY KEY, marka Tnazwa, właściciel CHAR(11) REFERENCES Osoba(pesel) ON DELETE SET NULL ON UPDATE CASCADE); 15 marzec 2005 SQL - język definicji danych

SQL - język definicji danych Przykład cd.3 CREATE VIEW WW AS SELECT nazwisko, imię FROM Osoba JOIN Samochód ON pesel=właściciel; CREATE VIEW WX AS FROM WW WHERE marka IN (‘BMW’,’Opel’); CREATE INDEX samWgWłaściciel ON Samochód(Właściciel) 15 marzec 2005 SQL - język definicji danych