Wprowadzenie do projektowania i wykorzystania baz danych Relacje



Podobne dokumenty
Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wykład 8. SQL praca z tabelami 5

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

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

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

Projektowanie systemów baz danych

Paweł Rajba

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Wykład 05 Bazy danych

Język SQL, zajęcia nr 1

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

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

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

Autor: Joanna Karwowska

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

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

Bazy danych - Materiały do laboratoriów VIII

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

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

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

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

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych Ćwiczenia projektowe

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje i elementy projektowania baz

Relacyjne bazy danych. Podstawy SQL

Podstawy technologii WWW

Wykład 5. SQL praca z tabelami 2

Wstęp do relacyjnych baz danych. Jan Bartoszek

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Bazy danych. Polecenia SQL

Bazy danych 10. SQL Widoki

Język SQL, zajęcia nr 2

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Internetowe bazy danych

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Relacyjne bazy danych. Podstawy SQL

Bazy danych Ćwiczenia projektowe

BAZY DANYCH Cz III. Transakcje, Triggery

Bazy danych. Dr inż. Paweł Kasprowski

Polecenie 3.1: Uruchom SQL Server Management Studio, zaloguj się do serwera.

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

ACESS- zadania z wykorzystaniem poleceń SQL

Aspekty aktywne baz danych

Bazy danych 9. SQL Klucze obce Transakcje

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

Tworzenie modelu logicznego i fizycznego danych.

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

SIECI KOMPUTEROWE I BAZY DANYCH

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Wykład 5: PHP: praca z bazą danych MySQL

Cele. Definiowanie wyzwalaczy

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Zarządzanie obiektami bazy danych Oracle11g

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

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

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Oracle11g: Wprowadzenie do SQL

Wykład 4. SQL praca z tabelami 1

LAB 3 (część 1 Projektu)

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

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

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

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

Paweł Cieśla. Dokumentacja projektu

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

Język zapytań SQL- język relacyjnych baz danych

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

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

Wykład 6. SQL praca z tabelami 3

Struktura drzewa w MySQL. Michał Tyszczenko

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

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

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

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

Transkrypt:

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa

Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2

Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR (XOR, alternatywa wykluczająca, więcej): porównanie liczb w syst. dwójkowym, w wyniku wart. 1 wpisywana jest na tej pozycji, na której porównywane liczby się różniły, w pozostałych przypadkach 0, np. Dla 2^30: --00010 w syst. dziesiętnym: 2 --11110 w syst. Dziesiętnym: 30 --------------------------------- --11100 w syst. dziesiętnym: 28 Zadanie: Oblicz, a potem sprawdź w SSMS: SELECT 4^9 SELECT 2^2 3

Dygresja nt. operatorów SELECT 2^2 --00010 w syst. dziesiętnym: 2 --00010 w syst. Dziesiętnym: 2 --------------------------------- --00000 w syst. dziesiętnym: 0 (wszystkie pozycje identyczne wartości) SELECT 4^9 -- 0100 w syst. dziesiętnym: 4 -- 1001 w syst. dziesiętnym: 9 --------------------------------- -- 1101 w syst. dziesiętnym: 13 4

Dygresja nt. operatorów W niektórych językach programowania znak ^ może oznaczać podniesienie do potęgi. W SQL jest to operator XOR, jak w przykładach wyżej. Podniesienie do potęgi, pierwiastek w SQL: SELECT POWER(2,3) SELECT SQRT(2) 5

Różne sposoby zabezpieczania danych i operacji w SSMS 6

Różne sposoby zabezpieczania danych I operacji w SSMS - wstępny SELECT Prostym sposobem może być w wielu przypadkach kontrolny wstępny SELECT, który wykonujemy zanim wykonamy zapytanie modyfikujące dane możemy dzięki temu wstępnie podejrzeć co stanie się z danymi po naszej operacji, np. ile wierszy zostanie zmodyfikowanych, w jaki sposób itp. 7

Różne sposoby zabezpieczania danych I operacji w SSMS - transakcje BEGIN TRAN - tu wpisujemy zapytanie/a np. Z UPDATE, - INSERT... - następnie ALBO zatwierdzamy (COMMIT) COMMIT - albo wycofujemy (ROLLBACK) zmiany ROLLBACK 8

Różne sposoby zabezpieczania danych I operacji w SSMS - kopie bezpieczeństwa Ratunku, nie ma cofnij! Mimo, że w SQL istnieją pewne mechanizmy zabezpieczające, takie jak transakcje, to najbezpieczniejszym założeniem w pracy z bazami danych jest założenie, że z zasady raczej nie cofa się operacji. Dlatego tym bardziej ważnym nawykiem w pracy z wszystkimi rodzajami baz jest wykonywanie kopii bezpieczeństwa danych przed operacjami modyfikującymi dane. W SSMS backup możemy wykonać, klikając prawym klawiszem na nazwie bazy, następnie Tasks->Back Up 9

RELACJE - składnia ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT RelationName FOREIGN KEY(ForeignKeyColumn) REFERENCES Table2 (KeyColumn) 10

RELACJE - składnia ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT RelationName FOREIGN KEY(ForeignKeyColumn) REFERENCES Table2 (KeyColumn) Zapytanie modyfikuje tabelę Table1 (ALTER TABLE) ze sprawdzeniem wartości (WITH CHECK), dodaje ograniczenie (ADD CONSTRAINT) o nazwie RelationName na klucz obcy ForeignKeyColumn (FOREIGN KEY). Niech wskazuje na tabelę Table2, kolumnę KeyColumn (REFERENCES). Tworzenie relacji ręcznie za pomocą takiego zapytania to jeden sposób, drugi, wizualny zostanie omówiony w dalszej części wykładu. 11

RELACJE - opis Relacje są jednym z mechanizmów ograniczeń (tzw. constraints) stosowanych w serwerach baz danych. Relacja powstaje przez połączenie dwóch tabel. Łączymy klucz główny (Primary Key) w jednej tabeli z kluczem obcym (Foreign Key) w drugiej. Relacje pilnują, aby nie można było przypadkowo usunąć danych użytych w innym miejscu. Można więc uznać je za kolejny sposób zabezpieczania danych w bazie. 12

RELACJE - przykład Aby przyjrzeć się jak działają relacje, przydadzą nam się dwie tabele. Jak pamiętamy, tabele można stworzyć na kilka sposobów, np. za pomocą SELECT INTO na podstawie innej tabeli lub CREATE. Tu tworzymy 2 nowe tabele: Citizen i City. --stworzenie tabeli Citizen CREATE Table Citizen ( CitizenID int identity(1,1) not null Primary Key, --stworzenie klucza głównego, int, samonumeracja, nie może być pusty, klucz główny FirstName varchar(50), LastName varchar(50), CityID int ) 13

RELACJE - przykład --stworzenie tabeli City CREATE Table City ( CityID int identity(1,1) not null Primary Key, Name varchar(50), CitizenID int ) 14

RELACJE - przykład --nałożenie relacji ALTER TABLE Citizen WITH CHECK ADD CONSTRAINT FK_Citizen_City FOREIGN KEY(CityID) REFERENCES City (CityID) Zapytanie modyfikuje tabelę Citizen (ALTER TABLE) ze sprawdzeniem wartości (WITH CHECK), dodaje ograniczenie o nazwie FK_Citizen_City na klucz obcy CityID (ADD CONSTRAINT FOREIGN KEY). Niech wskazuje na tabelę City, kolumnę CityID (REFERENCES). 15

RELACJE - przykład Dzięki relacjom dane są zabezpieczone przed przypadkową modyfikacją. Jeśli na tabele (np. Citizen i City, w których są dane osób z Warszawy i Poznania) jest założona relacja i spróbujemy usunąć wiersz z jednej z nich (np. wiersze dot. miasta Warszawy), to SSMS wyświetli błąd, np. taki: Msg 547, Level 16, State 0, Line 9 The DELETE statement conflicted with the REFERENCE constraint "FK_Citizen_City". The conflict occurred in database "Test", table "dbo.citizen", column 'CityID'. The statement has been terminated. Aby było możliwe usunięcie danych dla miasta, musimy najpierw usunąć dane jego mieszkańców musimy więc zrobić to świadomie, relacja zabezpiecza przed przypadkowym usuwaniem danych, które są powiązane relacjami z innymi danymi w bazie. 16

RELACJE - przykład Tabele w SSMS można stworzyć także używając dostępnych tam narzędzi graficznych (choć nie wszyscy użytkownicy je preferują). Taki sam efekt jak w wyniku dwóch powyższych zapytań CREATE otrzymamy klikając prawym klawiszem na Tables po lewej stronie okna programu. P 17

RELACJE - przykład Tabele tworzenie za pomocą narzędzi graficznych 18

RELACJE - przykład Tabele tworzenie za pomocą narzędzi graficznych. Dodajemy informacje dla kolejnych kolumn i zapisujemy tabelę. 19

RELACJE - przykład Edycja i podgląd wizualny relacji diagramy. Diagramy ERD (Entity Relationship Diagrams) diagramy związków encji. 20

RELACJE - przykład Edycja i podgląd wizualny relacji diagramy Relację pokazuje nam linia łącząca tabele w widoku diagramu. Tę linię możemy sami wstawić (na różne sposoby, zależnie od rodzaju relacji) albo usunąć. 21

RELACJE - przykład Podgląd zapytań, np. Script Table as... m.in. wyświetli komendę nakładania relacji o składni jak na slajdzie 9 wyżej 22

RELACJE - typy Relacja jeden do wielu Relacje wiele-do-wielu Relacje jeden do jednego Cdn. 23

Dziękuję za uwagę!