JPS. cwiczenia 2. Skład danych. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Podobne dokumenty
JPS Duży przykład ewaluacji zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

JPS. cwiczenia 3. Stosy, proste zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

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

Technologie 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

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

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Programowanie i struktury danych. Wykład 4 Dr Piotr Cybula

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

PHP: bazy danych, SQL, AJAX i JSON

Imię i Nazwisko Data Ocena. Laboratorium 7

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Programowanie w Ruby

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

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

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

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

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

Programowanie w Ruby

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

Projektowanie systemów baz danych

Komunikacja z bazą danych psql

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Rozmiar pola (długość danych)

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

1. WSTĘP. Bazy danych operują głównie na danych tekstowych i liczbowych, ale również danych binarnych typu: grafika, muzyka itp.

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

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

Database Connectivity

Język SQL, zajęcia nr 1

Oracle Application Express

Technologie semantyczne i sieci społecznościowe laboratorium

Wykład 5. SQL praca z tabelami 2

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Standard SQL/XML. Wprowadzenie do XQuery

Oracle 12c: Nowości w SQL i PL/SQL

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

Definicja obiektowego modelu danych: struktura i zachowanie

Oracle PL/SQL. Paweł Rajba.

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

DOKUMENTACJA TECHNICZNA USŁUGI API ver. 1.27

Dr Michał Tanaś(

Bazy danych i usługi sieciowe

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Język SQL, zajęcia nr 2

Aplikacje w środowisku Java

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

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

Wykład 8. SQL praca z tabelami 5

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

ACESS- zadania z wykorzystaniem poleceń SQL

Cele. Definiowanie wyzwalaczy

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

Temporalne bazy danych

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Funkcje analityczne SQL CUBE (1)

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

Bazy danych Ćwiczenia projektowe

Delphi podstawy programowania. Pliki INI

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

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Materiały szkoleniowe. Podstawy języka SQL

Hurtownie danych - przegląd technologii

P o d s t a w y j ę z y k a S Q L

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

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

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

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Relacyjne bazy danych. Podstawy SQL

Metody dostępu do danych

Wzorce dystrybucji i wspólbieżności autonomicznej

Diagramy przypadków użycia - MS Visio

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Wykład 4. SQL praca z tabelami 1

Programowanie obiektowe

Diagramy klas. dr Jarosław Skaruz

Programowanie obiektowe

Komunikacja międzysystemowa

Wykład 0 Informacje Podstawowe

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

SQL*Loader (2) SQL*Loader (1) SQL*Loader. SQL*Loader (4) SQL*Loader (3) Wczytywanie danych ze źródeł zewnętrznych

Uprawnienia, role, synonimy

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Bazy danych NoSQL Część III. Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki,

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

Programowanie obiektowe

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2

Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010

Inżynieria oprogramowania II

Transkrypt:

JPS cwiczenia 2. Skład danych Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Obiekty

Proste <OID, nazwa, wartość> np. <i0, imie, Jan >, <i1, pensja, 3354> Obiekty

Obiekty Proste <OID, nazwa, wartość> np. <i0, imie, Jan >, <i1, pensja, 3354> Złożone <OID, nazwa, { OID1, OID2, OID3,... }> np. <i2, pracownik, { i0, i1 }>

Obiekty Proste <OID, nazwa, wartość> np. <i0, imie, Jan >, <i1, pensja, 3354> Złożone <OID, nazwa, { OID1, OID2, OID3,... }> np. <i2, pracownik, { i0, i1 }> Referencyjne <OID, nazwa, OID1> np. <i3, pracuje_w, i4>

Baza danych <i16, ename, "Dudek"> <i0, entry, {i1, i2, i5}> <i1, emp, {i15, i16, i17}> <i23, loc, "Kraków"> <i5, dept, {i22, i23, i24}> <i17, works_in, i5> <i15, job, "Clerk"> <i2, emp, {i18, i19, i20, i21}> <i22, employs, i1> <i24, dname, "Sales"> <i18, salary, 3500> <i21, ename, "Nowak"> <i19, works_in, i4> <i20, job, "Programmer">

CRUD składu

CRUD składu Create Tworzenie obiektów w składzie. Alokacja miejsca, aktualizacja wartości obiektu nadrzędnego. Create(rodzaj_obiektu, nazwa, wartość, OID_nadrzędnego)

CRUD składu Create Tworzenie obiektów w składzie. Alokacja miejsca, aktualizacja wartości obiektu nadrzędnego. Create(rodzaj_obiektu, nazwa, wartość, OID_nadrzędnego) Retrieve Zwracanie wartości obiektów. Retrieve(OID) = wartość

CRUD składu Create Tworzenie obiektów w składzie. Alokacja miejsca, aktualizacja wartości obiektu nadrzędnego. Create(rodzaj_obiektu, nazwa, wartość, OID_nadrzędnego) Retrieve Zwracanie wartości obiektów. Retrieve(OID) = wartość Update Zmiana wartości istniejących obiektów. Update(OID, wartość)

CRUD składu Create Tworzenie obiektów w składzie. Alokacja miejsca, aktualizacja wartości obiektu nadrzędnego. Create(rodzaj_obiektu, nazwa, wartość, OID_nadrzędnego) Retrieve Zwracanie wartości obiektów. Retrieve(OID) = wartość Update Zmiana wartości istniejących obiektów. Update(OID, wartość) Delete Usuwanie obiektów ze składu. Aktualizacja obiektu nadrzędnego, usunięcie podobiektów, usunięcie referencji wskazujących na dany obiekt, zwolnienie miejsca. Delete(OID)

Create (1)

1. Pusta baza danych Create(COMPLEX, entry, { }, -) <i0, entry, {}> Create (1)

Create (1) 1. Pusta baza danych Create(COMPLEX, entry, { }, -) <i0, entry, {}> 2. Tworzymy pracownika Create(COMPLEX, emp, { }, i0) <i0, entry, {i1}> <i1, emp, { }>

Create (1) 1. Pusta baza danych Create(COMPLEX, entry, { }, -) <i0, entry, {}> 2. Tworzymy pracownika Create(COMPLEX, emp, { }, i0) <i0, entry, {i1}> <i1, emp, { }> 3. Tworzymy nazwisko Create(STRING, ename, Kowalski, i1) <i0, entry, {i1}> <i1, emp, {i2}> <i2, ename, Kowalski >

Create (1) 1. Pusta baza danych Create(COMPLEX, entry, { }, -) <i0, entry, {}> 2. Tworzymy pracownika Create(COMPLEX, emp, { }, i0) <i0, entry, {i1}> <i1, emp, { }> 3. Tworzymy nazwisko Create(STRING, ename, Kowalski, i1) <i0, entry, {i1}> <i1, emp, {i2}> <i2, ename, Kowalski > 4. Tworzymy pensję Create(INTEGER, salary, 1000, i1) <i0, entry, {i1}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000>

Create (2)

1. Tworzymy drugiego pracownika Create(COMPLEX, emp, { }, i0) <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, { }> Create (2)

Create (2) 1. Tworzymy drugiego pracownika Create(COMPLEX, emp, { }, i0) <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, { }> 2. Tworzymy nazwisko drugiego pracownika Create(STRING, ename, Nowak, i4); <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak >

Retrieve

Baza: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > Retrieve

Retrieve Baza: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > Operacje: Retrieve(i0) = {i1, i4} Retrieve(i1) = {i2, i3} Retrieve(i2) = Kowalski Retrieve(i3) = 1000

Update

Baza: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > Update

Update Baza: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > Aktualizacja nazwiska i pensji: Update(i2, Walewski ) Update(i3, 2000)

Update Baza: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > Aktualizacja nazwiska i pensji: Update(i2, Walewski ) Update(i3, 2000) Baza po modyfikacjach: <i0, entry, {i1, i4}> <i1, emp, {i2, i3}> <i2, ename, Walewski > <i3, salary, 2000> <i4, emp, {i5}> <i5, ename, Nowak >

Delete

Baza: <i0, entry, {i1, i4, i7}> <i1, emp, {i2, i3, i6}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > <i6, works_in, i7> <i7, dept, {i8, i9}> <i8, dname, Sales > <i9, location, Warsaw > Delete

Delete Baza: <i0, entry, {i1, i4, i7}> <i1, emp, {i2, i3, i6}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > <i6, works_in, i7> <i7, dept, {i8, i9}> <i8, dname, Sales > <i9, location, Warsaw > Usunięcie pierwszego pracownika, nazwiska drugiego pracownika i departamentu: Delete(i5) - usuwa obiekt i5 Delete(i7) - usuwa obiekt i7, wszystkie jego podobiekty i obiekt i6 Delete(i1) - usuwa obiekt i1 i wszystkie jego podobiekty

Delete Baza: <i0, entry, {i1, i4, i7}> <i1, emp, {i2, i3, i6}> <i2, ename, Kowalski > <i3, salary, 1000> <i4, emp, {i5}> <i5, ename, Nowak > <i6, works_in, i7> <i7, dept, {i8, i9}> <i8, dname, Sales > <i9, location, Warsaw > Usunięcie pierwszego pracownika, nazwiska drugiego pracownika i departamentu: Delete(i5) - usuwa obiekt i5 Delete(i7) - usuwa obiekt i7, wszystkie jego podobiekty i obiekt i6 Delete(i1) - usuwa obiekt i1 i wszystkie jego podobiekty Baza <i0, entry, {i4}> <i4, emp, { }>

Implementacja

Implementacja OID ID : integer SBAObject name : string parent : OID SimpleObject ComplexObject StringObject val : string IntegerObject val : integer ReferenceObject val : OID SpiderObject val : OID[] DataStore SBAObject[] Data OID Entry CreateStringObject(name : string, value : string, parent : OID) : OID CreateIntegerObject(name : string, value : integer, parent : OID) : OID CreateSpiderObject(name : string, value : OID[], parent : OID) : OID CreateReferenceObject(name : string, value : OID, parent : OID) : OID RetrieveStringObjectValue(ref : OID) : string RetrieveIntegerObjectValue(ref : OID) : integer RetrieveSpiderObjectValue(ref : OID) : OID[] RetrieveReferenceObjectValue(ref : OID) : OID UpdateStringObjectValue(ref : OID, val : string) UpdateIntegerObjectValue(ref : OID, val : integer) UpdateSpiderObjectValue(ref : OID, val : OID[]) UpdateReferenceObjectValue(ref : OID, val : OID) DeleteObject(ref : OID) FindByName(string : name, parent : OID) : OID[]

Obiekty

Obiekty

Obiekty

Obiekty

Obiekty

Obiekty

Przykład implementacji: tworzenie, odczytywanie i aktualizowanie obiektów

Przykład implementacji: tworzenie, odczytywanie i aktualizowanie obiektów

Przykład implementacji: tworzenie, odczytywanie i aktualizowanie obiektów

Przykład implementacji: tworzenie, odczytywanie i aktualizowanie obiektów

XML

XML Interpreter powinien mieć moduł ładujący dokumenty XML do składu

XML Interpreter powinien mieć moduł ładujący dokumenty XML do składu Wykorzystać DOM, SAX, lub coś jeszcze innego

Ćwiczenia