Relacyjne Bazy Danych Wykład 02 Wojciech St. Mościbrodzki

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
SQL – Strukturalny język zapytań
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.
Relacyjne Bazy Danych Wykład 02/03 Wojciech St
(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
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.
POWTÓRZENIE Główne elementy składni SQL: Zasady ogólne
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)
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
SQL – Structured Query Language (3)
MySQL – ODBC - ACCESS.
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ą
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.
Bazy Danych Wykład 7 Wojciech St. Mościbrodzki
SQL – część II.
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 W04: JOIN (złączenia) 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
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). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Proces doboru próby. Badana populacja – (zbiorowość generalna, populacja generalna) ogół rzeczywistych jednostek, o których chcemy uzyskać informacje.
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.
Literary Reference Center Przewodnik
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.
Temat : Wykonywanie podstawowych operacji na relacyjnej bazie danych.
Radosław Stefańczyk 3 FA. Fotony mogą oddziaływać z atomami na drodze czterech różnych procesów. Są to: zjawisko fotoelektryczne, efekt tworzenie par,
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
1 Procedury i funkcje CREATE PROCEDURE nazwa ([proc_parameter[,...]]) [characteristic...] routine_body CREATE FUNCTION nazwa ([func_parameter[,...]]) RETURNS.
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.
Cykl życia systemu bazy danych. Cyklem życia systemu bazy danych nazywamy zbiór kroków niezbędnych do zaprojektowania globalnego schematu logicznego bazy.
Projekt „NEW-TECH Program rozwoju praktycznych kompetencji nauczycieli zawodów branż nowych technologii” jest współfinansowany przez Unię Europejską Projekt.
PODSTAWY TEORII BAZ DANYCH
Relacyjne Bazy Danych Wykład 02/03 Wojciech St
Relacyjne Bazy Danych Wykład 01 Wojciech St. Mościbrodzki
1.Wstęp Systemy zarządzania bazami danych Prezentacja danych
DDL język definiowania danych
Funkcja – definicja i przykłady
Budowa, typologia, funkcjonalność
Kurs języka C++ – wykład 13 ( )
Relacyjne Bazy Danych Wojciech St. Mościbrodzki
Języki programowania.
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Zmienne i typy danych w C#
J2EE: Bazy danych c.d. Język zapytań EJB QL.
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ą.
Implementacja rekurencji w języku Haskell
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Autor: Magdalena Linowiecka
Zapis prezentacji:

Relacyjne Bazy Danych Wykład 02 Wojciech St. Mościbrodzki wojmos@wojmos.com

Encje - przypomnienie Encja i encja-typ Przykłady: każda unikalna (identyfikowalna) rzecz posiada atrybuty (cechy) przyjmujące określone wartości zbiór wartości atrybutu, nazywamy dziedziną encja (ściślej: encja-typ) to zbiór wszystkich encji identyfikowalnych przez ten sam zbiór atrybutów Przykłady: Jan Kowalski = encja cechy (atrybuty) Jana Kowalskiego = {wzrost, kolor oczu, imię, nazwisko} wartości atrybutów Jana Kowalskiego = {174, zielony, Jan, Kowalski} student (np. Jan Kowalski) = encja (ściślej: encja-typ) atrybut encji student: kolor oczu wartości atrybutu kolor oczu (dziedzina atrybutu) = {zielony, piwny, niebieski}

Encja - identyfikowalność klucz kandydujący nieformalnie: atrybuty, których wartości identyfikują encje formalnie: to każdy zbiór atrybutów, który posiada dwie własności: wartości atrybutów są różne dla każdej encji usunięcie dowolnego atrybutu ze zbioru, sprawia, że warunek powyżej nie jest spełniony klucz główny wybrany (arbitralnie) jeden z kluczy kandydujących Klucze kandydujące: {imię}, {semestr, miasto}, {semestr, wiek} itd.

Diagram Związków Encji (ERD) ERD służy do modelowania danych i związków pomiędzy nimi klucz zew. ENCJA atrybut klucz wyliczony Formalnie – na diagramach ER NIE OZNACZAMY TYPÓW DANYCH encja klucz główny atrybut

Diagram Związków Encji (ERD) - RELACJE ERD służy do modelowania danych i związków pomiędzy nimi różne notacje (różni autorzy) struktura pól krotność relacji Klasyczna Krucza Stopka Notacja Chena 1 1 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 1 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 N 1 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 N N ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 Notacja J. Martina Notacja Barkera ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2

Diagram Związków Encji (ERD) – przypadki szczególne Encja słaba encja słaba to taka encja, która nie jest rozróżnialna (identyfikowalna) przez własne atrybuty (wymaga klucza zewnętrznego) nagłówek faktury linia faktury numer data towar ilość Asocjacja (encja asocjacyjna, relacja wiele-do-wiele) asocjacja to relacja wiele-do-wiele (posiada cechy encji, może mieć atrybuty) w bazie danych odpowiada jej osobna tabela, zwana tabelą pośredniczącą) ENCJA 1 ENCJA2 ENCJA 1 ENCJA2 ENCJA 1 ENCJA2

Klasyfikacja relacji Kryterium krotności (dla relacji binarnych): jeden-do-jeden jeden-do-wiele wiele-do-wiele Kryterium "-narności" unarne binarne trynarne większe

Model logiczny danych (ERD) a model fizyczny zawiera informacje o encjach i relacjach nie zawiera informacji o typach danych (np. na poziomie SQL) jest niezależny od bazy danych Model fizyczny: zawiera informacje o encjach, relacjach i typach określa typy danych jest związany z implementacją

Podstawy SQL

Programowanie w SQL SQL nie jest językiem programowania – jest językiem zapytań SEQEL System R (IBM) RDMS (MIT) quel Ingres (Berkley) '70s SQL Oracle (Oracle) SQL-86 (standard ANSI): w kierunku wieloplatformowości '87 SQL-92: kursory, ALTER, DATA, TIMESTAMP, VARCHAR... '90s SQL-1999 (SQL3): triggery, BOOLEAN, control-flow (IF...) ... SQL-2003: funkcje okien danych, XML, MERGE SQL-2006: rozbudowa XML, funkcje WWW SQL-2008: INSTEAD, TRUNCATE... '00s

Programowanie z użyciem SQL Metody na "uprogramowienie" SQL: Embedded SQL (SQL osadzony): konieczny odpowiedni kompilator wartości przenoszone przez uwspólnione zmienne (widziane w SQL i w języku programowania) Modular SQL (moduły SQL dla języków programowania) konieczne są odpowiednie moduły dołączane przekazywanie wartości zależne od języka Dynamic SQL (część "programistyczna" w innym języku – np. PHP) wymaga odpowiednich konstrukcji językowych Programming Extensions for SQL (rozbudowa składni SQL – poza standardem ANSI) wymaga serwera SQL rozumiejące "rozbudowaną" składnię np. PL/SQL (Oracle), PSM (MySQL), PL PSM (PostgreSQL)

Podstawy SQL i pracy z klientem MySQL Polecenia klienta MySQL: są specyficzne dla dialektu MySQL - NIE NALEŻĄ do standardu SQL w rzeczywistości są poleceniami, które klient "tłumaczy" na zwykłe zapytania SELECT i kieruje do systemowej bazy danych mysql> show databases; +--------------------+ | Database | | information_schema | | gcs | | kardio | | mysql | | wojmos | mysql> show tables; +------------------+ | Tables_in_wojmos | | czlowiek | | faktura | mysql> explain czlowiek; +----------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | | imie | char(30) | YES | | NULL | | | nazwisko | char(50) | YES | | NULL | |

Podstawowe typy zapytań Zapytania wyszukujące dane: SELECT Zapytania modyfikujące dane: INSERT DELETE UPDATE Zapytania modyfikujące bazę danych i jej struktury: CREATE DROP ALTER GRANT / REVOKE Pseudozapytania MySQL: SHOW, EXPLAIN, DESCRIBE

CREATE DATABASE Polecenie CREATE służy do tworzenia baz: CREATE {DATABASE} [IF NOT EXISTS] db_name[create_specification] create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name W dokumentacji obowiązują następujące konwencje: {xxx} – xxx musi wystąpić xxx | yyy – musi wystąpić xxx ALBO yyy [xxx] – xxx może wystąpić (albo i nie) zzz: - wyjaśnienie symbolu zzz [ xxx | yyy ] – może wystąpić xxx ALBO yyy albo nic { xxx | yyy } – musi wystąpić xxx ALBO yyy

CREATE TABLE Polecenie CREATE TABLE służy do tworzenia tablic: CREATE TABLE {tablica} [IF NOT EXISTS] (specyfikacja) [opcje] specyfikacja: nazwa_kolumny, definicja_kolumny definicja_kolumny: typ [NULL|NOT NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition] CREATE TABLE player ( ID int auto_increment primary key, name char(50) NOT NULL, dex int, str int, cha int );

Podstawowe typy danych SQL Typy danych języka SQL: numeryczne: całkowite: INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT rzeczywiste: FLOAT(M,D), DOUBLE(M,D), DECIMAL(M,D) logiczne: BOOL, znakowe: łańcuchy krótkie: CHAR, VARCHAR obiekty tekstowe: TEXT daty i czasu: czasowe: DATE, TIME, DATETIME, YEAR specjalne: znacznik czasowy: TIMESTAMP obiekt binarny: BLOB wyliczeniowy: ENUM

Zapytania typu SELECT Typowy SELECT składa się z: wskazania kolumn mysql> select distinct imie from czlowiek where imie like 'jan%'; +--------+ | imie | | Jan | | Janusz | Typowy SELECT składa się z: wskazania kolumn wskazania tabeli FROM filtru rekordów WHERE warunek żądania sortowania ORDER BY select imie from czlowiek; +-------+ | imie | | Roman | mysql> select * from czlowiek; +-------+-------------+ | imie | nazwisko | | Roman | Pipokucki | | Roman | Popopizacki | mysql> select * from czlowiek order by imie DESC, nazwisko ASC; +-------+-----------+ | imie | nazwisko | | Roman | Kukurocki | | Roman | Kupikucki |

Zapytania typu INSERT Zapytania typu INSERT dodają do tablicy dane [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... insert into player (name, dex, str, cha) values ('Raven',18,8,10); Query OK, 1 row affected (0.02 sec) insert into czlowiek values ('Jan','Nowak'); Query OK, 1 row affected (0.02 sec) Specjalna forma INSERT (SELECT AS INSERT): insert into player (name) select imie from czlowiek;

Zapytania typu UPDATE UPDATE służy do aktualizacji (modyfikacji) rekordów UWAGA1: WHERE nie jest konieczne do działania UPDATE UWAGA2: brak WHERE może przynieść opłakane skutki UPDATE table SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] update player set dex=20 where name like 'Raven'; update pracownik set placa=placa+200 where name like 'Kowalski'; update pracownik set placa=placa+200 where ID=23445; update pracownik set placa=placa+200;

Polecenie ALTER służy do zarządzania strukturą ALTER TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ] | ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_type] | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition | CHANGE [COLUMN] old_col_name new_col_name column_definition | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY | DROP {INDEX|KEY} | RENAME [TO] new_tbl_name | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]

Relacje a tabele relacja 1-do-1 relacja 1-do-

Relacja jeden-do-wiele – realizacja w bazie danych