Bazy danych Ćwiczenia projektowe

Podobne dokumenty
Bazy danych Ćwiczenia projektowe

Bazy danych Ćwiczenia projektowe

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Administracja i programowanie pod Microsoft SQL Server 2000

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Autor: Joanna Karwowska

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Wykład 4. SQL praca z tabelami 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Aspekty aktywne baz danych

Tworzenie baz danych i tabel

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

Bazy danych. Dr inż. Paweł Kasprowski

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

Bazy danych - Materiały do laboratoriów VIII

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Instrukcja CREATE TABLE

SIECI KOMPUTEROWE I BAZY DANYCH

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

Paweł Rajba

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

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

Bazy danych - wykład wstępny

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1)

Projektowanie systemów baz danych

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Cele. Definiowanie wyzwalaczy

Ćwiczenie 7 - DDL. Relacje i ograniczenia integralnościowe. Ćwiczenie 7 DDL. Wymagania: Bazy Danych

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

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

Język SQL, zajęcia nr 1

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Krzysztof Kadowski. PL-E3579, PL-EA0312,

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład 2. Relacyjny model danych

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

Wykład 2. SQL 1 Structured Query Lenguage

SIECI KOMPUTEROWE I BAZY DANYCH

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Systemy baz danych. mgr inż. Sylwia Glińska

(ang. Structured Query Language).

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wykład 8. SQL praca z tabelami 5

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Baza danych. Modele danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

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

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Lab.8: Podstawy języka SQL.

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

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

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Wykład :45 BD-1 W_3

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Bazy danych. Polecenia SQL

Transformacja modelu ER do modelu relacyjnego

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Bazy danych 2. Wykład 3. Metodologia projektowania baz danych (projektowanie fizyczne)

Podstawowe informacje o bazach danych. Technologie Informacyjne

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Bazy danych 7. SQL podstawy

Tworzenie modelu logicznego i fizycznego danych.

SIECI KOMPUTEROWE I BAZY DANYCH

Fizyczna struktura bazy danych w SQL Serwerze

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL cz.1

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

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

Relacyjne bazy danych. Podstawy SQL

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Projektowanie Baz Danych GiG-2-KG Ćw. 5. Podstawy języka SQL

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Widok Connections po utworzeniu połączenia. Obszar roboczy

SQL SERVER 2016 IN MEMORY

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

Paweł Rajba

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

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Komunikacja z bazą danych psql

Programowanie obiektów

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Transkrypt:

Bazy danych Ćwiczenia projektowe Przygotował: Piotr Hajder Katedra Informatyki Stosowanej i Modelowania Wydział Inżynierii Metali i Informatyki Przemysłowej, AGH

Agenda 01. Typy danych 02. Polecenia DDL 03. Ograniczenia 04. Praca własna

01 : Typy danych

Typy danych Tekstowe Składnia Max rozmiar Opis CHAR(size) 8000 znaków Stała długość. VARCHAR(size) VARCHAR(max) 8000 znaków lub max* Zmienna długość. TEXT 2GB Typ zmiennej długości. NCHAR(size) 4000 znaków Typ stałej długości, nacjonalizowany. NVARCHAR(size) NVARCHAR(max) 4000 znaków lub max* Zmienna długość, nacjonalizowany. NTEXT ~1GB Typ zmiennej długości, nacjonalizowany BINARY(size) 8000 znaków Stała długość, dane binarne VARBINARY(size) VARBINARY(max) 8000 znaków lub max* size liczba znaków, zmienna długość, dane niebinarne IMAGE 2GB Typ zmiennej długości, dane binarne size liczba znaków * Max dla znaków = 2GB

Typy danych Numeryczne Składnia Max rozmiar Opis BIT Typ całkowity: {0; 1; NNNNNNNN} TINYINT [0; 255] SMALLINT [ 32768; 32767] INT 2 32 ; 2 32 1 BIGINT 2 63 ; 2 63 1 DECIMAL(m,d) DEC(m,d) NUMERIC(m,d) FLOAT(n) REAL m domyślnie 18 d domyślnie 0 FLOAT(24) m całkowita liczba cyfr; p po przecinku n liczba bitów SMALLMONEY 214748,3648; 214748,3647 MONEY ~ 2 50 ; ~2 50 CREATE TABLE float_demo ( f1 FLOAT(1), f2 FLOAT(4), f3 FLOAT(7) );

02 : Polecenia DDL

Polecenia DDL CREATE CREATE TABLE table_name ( column_1 datatype [ NULL NOT NULL ], column_2 datatype [ NULL NOT NULL ],, column_n datatype [ NULL NOT NULL ] ); Objaśnienie: table_name nazwa tabeli (obiektu), column_x nazwa kolumny, datatype typ danych, Ponadto, można określić, czy parametr może przyjmować wartość NULL. Nazwy tabel w bazie muszą być unikalne Nazwy kolumn w tabeli muszą być unikalne Przy tworzeniu tabeli można dodawać ograniczenia nazwy również unikalne Ewentualne braki można uzupełnić, modyfikując tabelę poleceniem ALTER CREATE TABLE customers ( customer_id number(10) NOT NULL, customer_name varchar2(50) NOT NULL, city varchar2(50), CONSTRAINT customers_pk PRIMARY KEY (customer_id) );

Polecenia DDL DROP DROP TABLE [schema_name].table_name [ CASCADE CONSTRAINTS ] [ PURGE ]; DROP TABLE customers; Objaśnienie: schema_name nazwa schematu, który zawiera podaną tabelę, table_name nazwa tabeli do usunięcia, CASCADE CONSTRAINTS usunięcie tabeli wraz z dotyczącymi jej ograniczeniami, PURGE całkowite usunięcie tabeli (z pominięciem kosza). Służy do usuwania obiektów (tabel, schematów, Często stosowany w połączeniu z Może zadziałać również na obiekty Przykłady użytkowników, ograniczeń) poleceniem ALTER powiązane

Polecenia DDL ALTER Składnia ADD column_name column-definition; ALTER COLUMN column_name column_type; DROP COLUMN column_name; RENAME COLUMN old_name TO new_name; RENAME TO new_table_name; Przykład ALTER TABLE customers ADD (customer_name varchar2(45), city varchar2(40) DEFAULT 'Seattle'); ALTER TABLE customers ALTER COLUMN city varchar2(75) NOT NULL; ALTER TABLE customers DROP COLUMN customer_name; ALTER TABLE customers RENAME COLUMN customer_name TO cname; ALTER TABLE customers RENAME TO contacts; sp_rename employees.last_name, lname, COLUMN ; sp_rename employees emps ; Pozwala na modyfikowanie stworzonych obiektów Tabela musi być pusta, aby zmienić kolumnę Pozwala na modyfikację ograniczeń Głównie (ale nie tylko) dla tabel!

03 : Ograniczenia Slide sub title

Ograniczenia Cel tworzenia ograniczeń Zapobiegają wprowadzaniu błędnych danych do tabel Tworzą logikę biznesową na poziomie bazy danych Dokumentują istotne reguły w bazie danych Wymuszają integralność relacyjną pomiędzy dowolną liczbą tabel Wpływają (korzystnie lub nie) na wydajność bazy danych Realizują unikalność wartości w tabelach

Ograniczenia Typy ograniczeń Wartość NULL Definiowana podczas tworzenia tabeli (lub modyfikacji) Określenie atrybutu jako NOT NULL uniemożliwia dodanie rekordu bez podania wartości Klucz główny (PRIMARY KEY) Tylko jeden w tabeli Zbiór atrybutów, gwarantujący unikalność rekordu (krotki) Klucz obcy (FOREIGN KEY) Określa relację pomiędzy tabelami Wymusza integralność danych Unikalność (UNIQUE) Definiuje unikalność atrybutu/zbioru atrybutów Wartość domyślna (DEFAULT) Podawana podczas tworzenia tabeli (lub modyfikacji) W przypadku nie podania wartości atrybutu, uzupełniany jest wartością domyślną Inne (CHECK) Inne, niezwiązane z powyższymi ograniczenia Przykładowo: wiek z zakresu [0;99] lat

Ograniczenia Klucz główny Minimalny zestaw atrybutów, gwarantujący unikalność rekordu Kluczem głównym może być również klucz potencjalny (ang. candidate key) Wyróżnia się klucze naturalne (np. data i miejsce urodzenia) oraz klucze sztuczne (ang. surrogate key) Popularność programowania obiektowego sprawiła, że klucze sztuczne występują bardzo często Wartość klucza głównego nie może być zmieniana klucz powinien zostać usunięty wraz z rekordem Najczęściej, klucz sztuczny jest typu całkowitego

Ograniczenia Klucz obcy Jednoznacznie identyfikuje rekord w innej, powiązanej z nim tabeli Definiuje relację między dwoma tabelami Wymusza integralność danych, wchodzących w skład klucza obcego Klucz obcy musi być jednocześnie kluczem głównym w tabeli referencyjnej (rodzic) Zastosowanie klucza obcego niesie poważne konsekwencje wydajnościowe

Język SQL Klucz główny Składnia (CREATE) Składnia (ALTER) Przykład (CREATE) Przykład (ALTER) CREATE TABLE table_name ( column1 datatype [ NULL NOT NULL ], column2 datatype [ NULL NOT NULL ],..., CONSTRAINT constraint_name PRIMARY KEY (column1, column2,... column_n) ); ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2,... column_n); CREATE TABLE supplier ( supplier_id numeric(10) not null, supplier_name varchar(50) not null, contact_name varchar(50), CONSTRAINT supplier_pk PRIMARY KEY (supplier_id, supplier_name) ); ALTER TABLE supplier ADD CONSTRAINT supplier_pk PRIMARY KEY (supplier_id);

Język SQL Klucz obcy Składnia (CREATE) Składnia (ALTER) Przykład (CREATE) Przykład (ALTER) CREATE TABLE table_name ( column1 datatype [ NULL NOT NULL ], column2 datatype [ NULL NOT NULL ],..., CONSTRAINT fk_column FOREIGN KEY (column1,... column_n) REFERENCES parent_table (column1,... column_n) ); ADD CONSTRAINT constraint_name FOREIGN KEY (column1, column2,..., column_n) REFERENCES parent_table (column1, column2,..., column_n); CREATE TABLE products ( product_id numeric(10) not null, supplier_id numeric(10) not null, CONSTRAINT fk_supplier FOREIGN KEY (supplier_id) REFERENCES supplier(supplier_id) ); ALTER TABLE products ADD CONSTRAINT fk_supplier FOREIGN KEY (supplier_id) REFERENCES supplier(supplier_id);

Język SQL Unikalność Składnia (CREATE) Składnia (ALTER) Przykład (CREATE) Przykład (ALTER) CREATE TABLE table_name ( column1 datatype [ NULL NOT NULL ], column2 datatype [ NULL NOT NULL ],..., CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2,... uc_col_n) ); ADD CONSTRAINT constraint_name UNIQUE (column1, column2,... column_n); CREATE TABLE supplier ( supplier_id numeric(10) NOT NULL, supplier_name varchar(50) NOT NULL, contact_name varchar(50), CONSTRAINT supplier_unique UNIQUE (supplier_id, supplier_name) ); ALTER TABLE supplier ADD CONSTRAINT supplier_name_unique UNIQUE (supplier_id, supplier_name);

Język SQL CHECK Składnia (CREATE) Składnia (ALTER) Przykład (CREATE) Przykład (ALTER) CREATE TABLE table_name ( column1 datatype [ NULL NOT NULL ], column2 datatype [ NULL NOT NULL ],..., CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE] ); ADD CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE]; CREATE TABLE suppliers ( supplier_id numeric(4), supplier_name varchar(50), CONSTRAINT check_supplier_id CHECK (supplier_id BETWEEN 100 and 9999) ); ALTER TABLE suppliers ADD CONSTRAINT check_supplier_name CHECK (supplier_name IN ('IBM', 'Microsoft', 'NVIDIA'));

Język SQL Zarządzanie ograniczeniami Lp. Polecenie Kod SQL 1 Włączenie ograniczenia 2 Wyłączenie ograniczenia 3 Usunięcie ograniczenia CHECK CONSTRAINT constraint_name; NOCHECK CONSTRAINT constraint_name; DROP CONSTRAINT constraint_name; Podsumowanie Tworzenie i modyfikowanie ograniczeń poleceniami CREATE i ALTER Definiowanie integralności danych/relacji poprzez zastosowanie klucza obcego Włączanie/wyłączanie ograniczeniami; usuwanie ograniczeń

Ograniczenia a wydajność Czy warto? Typ ograniczenia CHECK Średni czas mmmm Czas dodawania mmmm 1000 wwwwwwwwwwwwww Narzut Brak ograniczeń 12,401 0.484 - Proste ograniczenie 13,034 0.509 5,1% Złożone ograniczenie 14,505 0.567 17,0% Wiele złożonych ograniczeń 25,101 0.981 102.4% Ograniczenia generują duży narzut czasowy związany z integralnością danych Istotne w przypadku dużych, złożonych baz danych Kompensacja obciążenia poprzez implementację logiki biznesowej na poziomie aplikacji https://voluntarydba.com/post/2012/11/15/how-much-overhead-do-check-constraints-have.aspx

04 : Praca własna

Schemat dziekanatu Praca własna

Dziękuję!