Język SQL (Structured Query Language) DDL (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ń
Język SQL Część II.
Bazy danych - SQL.
Relacyjny model danych
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.
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.
Relacyjne Bazy Danych Wykład 02/03 Wojciech St
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.
Co to jest studium przypadku?
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Bazy Danych Wprowadzenie
Relacyjny Model Danych
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.
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
Wymagania do projektu i realizacji baz danych:
POWTÓRZENIE Główne elementy składni SQL: Zasady ogólne
POWTÓRZENIE Metodologia : Pojęcia:
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Bazy Danych Wykład 1 S. Kozielski.
Bezpieczeństwo baz danych
Mechanizm kompresji danych w SQL Server 2008
SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (“Structured English QUEry.
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
OPERACJA DZIELENIA W SQL
Podstawy C# Grupa .NET PO.
SQL – Structured Query Language (3)
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 TELEINFORMATYCZNE
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
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
SYSTEMY TELEINFORMATYCZNE
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
Bazy Danych W03: Spójność relacji i JOINy Wojciech St
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 –
Bazy Danych Wprowadzenie
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
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
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ą.
Zapis prezentacji:

Język SQL (Structured Query Language) DDL (Data Definition Language) Wykład S. Kozielski

Język SQL (Structured Query Language) 1974 IBM  SEQUEL  SQL standaryzacja: SQL – 86 SQL – 89 SQL – 92 (SQL - 2) SQL – 99 (SQL - 3) SQL – 2003

DDL (Data Definition Language) Tworzenie tablic CREATE TABLE <tablica> (<kolumna> <typ> [<ograniczenie kolumny>], ... [,<ograniczenie dodatkowe>])

Typy danych Typy znakowe: CHARACTER(n), CHAR(n): łańcuch n-znaków o stałej długości, VARCHAR(n): łańcuch znaków o zmiennej długości, LONG (LONG VARCHAR): łańcuch  2 GB

Typy numeryczne dokładne: NUMERIC(p,q) DECIMAL(p,q), DEC(p,q) INTEGER, INT SMALLINT przybliżone: FLOAT(p) REAL DOUBLE PRECISION

Typ Data i czas DATE : rrrr-mm-dd TIME : hh-mm-ss:ułamki sekund TIMESTAMP DATETIME INTERVAL

Inne typy BIT(n) – łańcuch n-bitów BYTE - łańcuch 8-bitów BOOLEAN – true/false MONEY SERIAL ...

Ograniczenia kolumny NOT NULL DEFAULT <wartość domyślna> UNIQUE CONSTRAINT <nazwa ogranicz.>] CHECK (<warunek>) więzy referencyjne

Ograniczenia dodatkowe [CONSTRAINT <nazwa ogranicz.>] CHECK (<warunek>) więzy referencyjne

Przykład: definiowanie tablicy o strukturze: uczniowie (nazwisko, wzrost, waga, klasa) create table uczniowie ( nazwisko varchar(15) not null, wzrost int constraint max_min check (wzrost > 70 and wzrost < 280), waga dec(5,2) check (waga < 180), klasa smallint);

Modyfikowanie struktury tablicy ALTER TABLE <tablica> ADD (<kolumna><typ>[<ogranicz. kolumny>]) ADD (<ograniczenie dodatkowe>) MODIFY (<kolumna><typ>[<ogran. kolumny>]) DROP <kolumna> DROP <ograniczenie dodatkowe> DROP CONSTRAINT <ograniczenie kolumny>

Indeksy i_prac_nazw Jabłoński Grabski Bukowy nazwisko Topolski Malina  wsk Pracownicy 5 4 3 2 1 nrp nrz i_prac_nrz

Tworzenie indeksów CREATE [UNIQUE] INDEX <indeks> ON <tablica> (<kolumna>[ASC|DESC], …) Przykład create index i_prac_nazw on pracownicy(nazwisko);

Tworzenie perspektyw (widoków) CREATE VIEW <perspektywa> …

Usuwanie obiektów DROP TABLE <tablica> DROP INDEX <indeks> DROP VIEW <perspektywa>

Tworzenie perspektyw Cele tworzenia perspektyw: a) upraszczanie zapytań 

Tworzenie perspektyw Cele tworzenia perspektyw: b) ograniczanie dostępu do tablic

Tworzenie perspektyw CREATE VIEW <perspektywa> [(<lista nazw kolumn>)] AS <instrukcja SELECT> [WITH CHECK OPTION]

Tworzenie przykładowej perspektywy zpwt create view zpwt (nrz, nazwa_z, nrpk_z, nrp, nazwisko, nrt, nazwa_t, nrpk_t, kwota) as select z.nrz, z.nazwa, z.nrpk, p.nrp, nazwisko, t.nrt, t.nazwa, t.nrpk, kwota from zespoły z, pracownicy p, wypłaty w, tematy t where z.nrz = p.nrz and p.nrp = w.nrp and w.nrt = t.nrt

Przykłady wykorzystania perspektywy zpwt select distinct nazwa_z from zpwt where nazwa_t = ‘Projekt sterownika’   select nazwa_z, nazwa_t, sum(kwota) group by nazwa_z, nazwa_t

Wykorzystanie perspektyw do aktualizacji tablic Niedopuszczalne w definicji perspektyw: - fraza GROUP, - wyrażenia, funkcje agreg., DISTINCT na liście SELECT, - fraza UNION, - złączenia – z wyjątkami, np. SQL Server (o ile aktualizacja dotyczy 1 tablicy).

Rola frazy CHECK OPTION create view sekretariat_1 as select nrp, nazwisko, nrz from pracownicy where nrz = 1 with check option select * from sekretariat_1 insert into sekretariat_1 values (12,’Sosna’,1)   insert into sekretariat_1 values (13,’Dębski’,2)

Więzy referencyjne – ochrona integralności bazy danych Klucze główne (PRIMARY KEY)   Kolumna lub zestaw kolumn, których wartości jednoznacznie identyfikują każdy wiersz. Wymagania dla klucza głównego: - może być tylko 1 klucz główny w tablicy, - klucz główny musi mieć wartości unikalne i niepuste.

Wskazanie kluczy głównych Zespoły (nrz, nazwa, nrpk) Pracownicy (nrp, nazwisko, nrz) Wypłaty (nrp, nrt, kwota) Tematy (nrt, nazwa, nrpk)

Klucze obce (FOREIGN KEY) Kolumna lub zestaw kolumn, które tworzą logiczne powiązanie z kluczem głównym jakiejś tablicy (nadrzędnej)   Wymagania dla kluczy obcych: - definicja klucza obcego musi odpowiadać definicji klucza głównego istniejącej już tablicy nadrzędnej, - niepustej wartości klucza obcego musi odpowiadać istniejąca wartość klucza głównego, - dopuszcza się wartości puste kluczy obcych.

Wskazanie kluczy obcych Zespoły (nrz, nazwa, nrpk) Pracownicy (nrp, nazwisko, nrz) Wypłaty (nrp, nrt, kwota) Tematy (nrt, nazwa, nrpk)

Ograniczenia na usuwanie wierszy - restrykcyjne (RESTRICT, NO ACTION) – usunięcie wiersza nadrzędnego nie jest możliwe, jeśli istnieją wiersze podrzędne (logicznie z nim powiązane), - z wstawianiem wartości pustych (SET NULL) – usunięcie wiersza nadrzędnego powoduje automatyczne wstawienie wartości pustych w miejsce kluczy obcych wierszy podrzędnych, - kaskadowe (CASCADE) – usunięcie wiersza nadrzędnego powoduje automatyczne usunięcie wierszy podrzędnych (logicznie z nim powiązanych).

Nałożenie ograniczeń na usuwanie danych Zespoły (nrz, nazwa, nrpk) Pracownicy (nrp, nazwisko, nrz) Wypłaty (nrp, nrt, kwota) Tematy (nrt, nazwa, nrpk) set null cascade restrict

Definiowanie więzów referencyjnych Klucz główny Ograniczenie kolumny: PRIMARY KEY Ograniczenie dodatkowe: PRIMARY KEY (<kolumna>, …)

Klucz obcy Ograniczenie kolumny: REFERENCES <tablica nadrzędna> [(<kolumna>)] b) Ograniczenie dodatkowe: FOREIGN KEY (<kolumna>, …) REFERENCES <tablica nadrzędna> [(<kolumna>, …)]

Ograniczenia na usuwanie i modyfikację wierszy ON DELETE { NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT } ON UPDATE { NO ACTION | RESTRICT |

create table zespoły (nrz int primary key, nazwa varchar(30), create table zespoły (nrz int primary key, nazwa varchar(30), nrpk int); create table pracownicy (nrp int primary key, nazwisko varchar(20) not null,nrz int references zespoły on delete set null); create table tematy (nrt int primary key, nazwa varchar(50), nrpk int); create table wypłaty (nrp int references pracownicy, nrt int references tematy on delete cascade,kwota dec(8,2), primary key (nrp, nrt));  

alter table zespoły add (foreign key(nrpk) references alter table zespoły add (foreign key(nrpk) references pracownicy on delete set null); alter table tematy add (foreign key(nrpk) references pracownicy on delete set null);