DDL język definiowania danych

Slides:



Advertisements
Podobne prezentacje
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Advertisements

Projektowanie bazy danych
Wykład 3 Prowadzący: dr Paweł Drozda
Skrypty, procedury przechowywane i wyzwalane
SQL – Strukturalny język zapytań
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.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
4. Relacyjny model 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.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
ZSBD PL/SQL CZĘŚĆ 3 Wykład 5 Prowadzący: dr Paweł Drozda.
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Funkcje znakowe ASCII(znak IN VARCHAR2) RETURN INTEGER
Wykład 8 Wojciech Pieprzyca
Wykład 1 Wojciech Pieprzyca
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
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
SQL – Structured Query Language (3)
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)
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ą
SQL - Structured Query Language
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
SQL – część II.
Projektowanie bazy danych
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)
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 –
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
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.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
MULTIMEDIALNE BAZY DANYCH Wprowadzenie. Baza danych Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie.
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.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
ORGANIZACJA LOGICZNA PLIKÓW. Wprowadzenie (1) Organizacja pliku określa sposób uporządkowania rekordów w pliku przechowywanym na dysku Różne sposoby organizacji.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.
Czy DENY jest zawsze ważniejszy niż GRANT?
PODSTAWY TEORII BAZ DANYCH
Widoki (views) - Perspektywy:
Relacyjne Bazy Danych Wykład 02 Wojciech St. Mościbrodzki
Rachunki zdań Tautologiczność funkcji
ALGORYTMY I STRUKTURY DANYCH
Języki programowania.
Strukturalny język zapytań SQL - historia
Laboratorium 1 – obsługa wejść i wyjść
Podstawy informatyki Zygfryd Głowacz.
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ą.
Bufory.
Obsługa bazy danych z poziomu phpMyAdmin
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Kwerendy funkcjonalne (Action queries)
Zapis prezentacji:

DDL język definiowania danych SQL DDL język definiowania danych

Data Definition Language (DDL) Definiowanie schematów relacji (tabel) Określanie domen (typów danych) związanych z każdym z atrybutów. Tworzenie więzów integralności danych. Tworzenie indeksów.

Typy domen w SQL char(n) - Stałej długości łańcuch znaków (n – znaków). varchar(n) - Zmiennej długości łańcuch znaków ( do n znaków). integer - liczba całkowita. numeric(p,d) - Liczba rzeczywista stałoprzecinkowa z dokładnością p cyfr i z n cyframi po przecinku. real, double precision - Liczba zmiennoprzecinkowa zwykła oraz liczba o podwójnej precyzji. float(n) – Liczba zmiennoprzecinkowa z dokładnościa n -cyfr. datetime – data + czas. blob – duży obiekt binarny (np. grafika)

Własne domeny użytkownika create domain NIP as CHAR(11) Aby zaznaczyć, że nie można pozostawić pola z danej dziedziny niewypełnionego dodajemy atrybut NOT NULL create domain NIP as CHAR(11) not null kw24

Tworzenie tabeli W SQL-u relacje definiujemy poleceniem create table : create table r (A1 D1, A2 D2, ..., An Dn, (warunek integralnosci1), ..., (warunek integralnoscik)) r jest nazwą relacji każde Ai jest nazwą atrybutu relacji r Di jest typem wartości – nazwą domeny atrybutu Ai Warunek – węzeł integralności = integrity constraint Kw 25

Warunki integralności w poleceniu tworzenia tabeli not null primary key (A1, ..., An) check (P), gdzie P jest predykatem Deklaracja primary key na pewnym atrybucie automatycznie wymusza jego własność not null w SQL-92. W SQL-89 warunke not null musi byś wymieniony wyraźnie. Kw 26

Usuwanie i modyfikacja tabeli drop table usuwa tabelę z bazy alter table zmienia strukturę tabeli np. dodaje atrybuty alter table r add A D gdzie A jest nazwą dodawanego atrybutu do relacji r a D domeną dla A. Wszystkie wartości nowego pola – atrybutu są przyjęte jako NULL. alter table może być użyte do usuwania atrybutu z relacji alter table r drop A gdzie A jest nazwą atrybutu w relacji r

Referencyjne więzy integralności - klucz główny Klucz główny relacji r(A1, a2, ... , An) to zestaw atrybutów jednoznacznie identyfikujący każdą krotkę w relacji. ALTER TABLR NazwaTabeli ADD CONSTRAINT NazwaKlucza PRIMARY KEY (Ak1, Ak2, ... , Akm) gdzie Ak1, Ak2, ... , Akm są atrybutami relacj r ALTER TABLE URLOPY ADD CONSTRAINT PK_URLOPY PRIMARY KEY (ID_PRACOWNIKA, OD_DNIA) Kw 27

Referencyjne więzy integralności – klucze obce Referencyjny związek integralności oparty o tzw. klucz obcy między relacja r(A1, A2, ... , An) a relacją s(B1,B2,...,Bm) oznacza, że wartości pewnych ustalonych atrybutów każdej krotki relacj r muszą odpowiadac wartości klucza głównego pewnej ktotki relacji s. ALTER TABLE urlopy ADD CONSTRAINT FK_URLOPY_PRACOWNICY FOREIGN KEY (ID_PRACOWNIKA) REFERENCES pracownicy (ID_PRACOWNIKA);

Referencyjne więzy integralności – klucze obce (cd.) ALTER TABLE urlopy ADD CONSTRAINT FK_URLOPY_PRACOWNICY FOREIGN KEY (ID_PRACOWNIKA) REFERENCES pracownicy (ID_PRACOWNIKA) ON UPDATE CASCADE ON DELETE CASCADE; Kauzule ON UPDATE oraz ON DELETE określają jak system ma reagować na zmiany klucza głównego w chwili, gdy istnieje klucz obcy do danej tabeli.

Referencyjne więzy integralności – klucze obce (cd.2) ON DELETE | ON UPDATE wykorzystywane jest z REFERENCES: Zmiana klucza obcego w przypadku zmiany klucza głównego; dopuszczalne opcje: [Default] NO ACTION: Nie ma wpływu na wartość klucza obcego; może powodować niemożność dokonania zmiany klucza głównego ze względu na integralność danych. CASCADE: Dla ON DELETE, usuwa rekordy z odpowiadającą mu wartością klucza obcego; dla ON UPDATE, uaktualnia odpowiednie klucze obce. SET NULL: Ustawia wartości na NULL SET DEFAULT

Indeksy Indeks jest dynamiczną strukturą B-drzewa zachowywaną w bazie danych, której przeznaczeniem jest przyspieszenie operacji wyszukiwania danych. CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]] INDEX NazwaIndeksu ON NazwaTabeli (kol [, kol …]); UNIQUE Niedopuszcza wstawianie powtarzających się wartości w indeksowanej kolumnie ASC[ENDING] Sortowanie wartości w kolejności rosnącej DESC[ENDING] Sortowanie wartości w kolejności malejącej kol Kolumna w indeksowanej tabeli Kw 30

Procedury zapamiętane (składowane) Serwery SQL-owe mają zwykle wbudowany kompilator odpowiedniej wersji dynamicznego języka SQL pozwalający na kompilowanie, optymalizację i zapamiętanie w bazie danych kodu procedur. Procedury składowane (stored procedure) mogą przyjmować parametry wejściowe oraz mogą mieć parametry wyjściowe. Wyniki zwracane przez procedury prezentowane są zwykle w postaci relacji.

Przykładowa procedura SET TERM ^ ; CREATE PROCEDURE PROC_PRAC_W_ZAKLADZIE ( SYMBOL VARCHAR(4) ) RETURNS ( NAZWISKO VARCHAR(50), IMIE1 VARCHAR(50)) AS begin /* Procedure Text */ FOR select NAZWISKO, IMIE1 from PRACOWNICY where ZAKLAD = :SYMBOL into :NAZWISKO, :IMIE1 do suspend; end ^ SET TERM ; ^ Przykładowe wykorzystanie: select * from proc_prac_w_zakladzie(2)

Wyzwalacze (trigers) Wyzwalacz (triger) jest procedurą składowanyą uruchamianą przez serwer automatycznie przed lub po zajściu odpowiedniego zdarzenia np. wstawieniu, usunięciu lub modyfikacji rekordu w tabeli. SET TERM !! ; CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE AFTER UPDATE AS BEGIN IF (OLD.SALARY <> NEW.SALARY) THEN INSERT INTO SALARY_HISTORY (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) VALUES (OLD.EMP_NO, 'now', USER,OLD.SALARY, (NEW.SALARY - OLD.SALARY) * 100 / OLD.SALARY); END !! SET TERM ; !!