Multimediální databáze

Slides:



Advertisements
Podobné prezentace
PLAYBOY Kalendar 2007.
Advertisements

Produkce odpadů 2002 – 2007 obce ORP Šumperk
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Tutorial: Mechanic - electrician Topic: Technical training II. class Printed circuit boards 3 Prepared by: Melichařík Lubomír Projekt Anglicky v odborných.
Novinky ze zahraničí IVIG 2008
Základy jazyka SQL Jan Tichava
Budoucí čas „to be going to“
Metodický list Pořadové číslo: VY_32_INOVACE_ I.C.20 Název pro školu:EU AJ 1.stupeň 20 Název materiálu:Christmas Autor:Mgr. Hana Opálková Vzdělávací obor:Anglický.
*Zdroj: Průzkum spotřebitelů Komise EU, ukazatel GfK. Ekonomická očekávání v Evropě Březen.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
 Úvodní snímek – název a jméno  Osnova prezentace  Obrázky a grafy  Závěr, prostor pro otázky, poděkování, shrnutí  Vhodný slide na závěr – dlouho.
Daniel.steigerwald.cz Třídy, dědičnost a OOP v Javascriptu.
Tutorial: Mechanic - electrician Topic: Electric measurement the 2nd. year Measuring devices 1 Prepared by: Ing. Jiří Smílek Projekt Anglicky v odborných.
Ukončení 1.etapy výuky cizího jazyka
Počítačová grafika pro inženýry - CAD systémy pro DTP - znaky, stránky, dokumenty, tisk, osvitové jednotky pro manažery - obrázky, interpretace pro autory.
Prof. Ing. Jan Flusser, DrSc. Digitální zpracování obrazu
Program pro evidenci nákladů a výnosů Jan Lisal. Požadavky Požadavky zadání: Možnost evidence nákladů a výnosů v rámci firmy Možnost evidence práv a uživatelů.
SharePoint technologie WSS 3.0 a MOSS 2007 Tomáš Kutěj TSP – Office platform Microsoft.
ŠkolaStřední průmyslová škola Zlín Název projektu, reg. č.Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávací.
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
Název šablony:Inovace a zkvalitnění výuky prostřednictvím ICT zaměření VM: 5. ročník – Jazyk a jazyková komunikace – Cizí jazyk - Anglický jazyk – My day.
AutorMgr. Lenka Závrská Anotace Očekávaný přínos Tematická oblastOperace s reálnými čísly Téma PředmětMatematika RočníkPrvní Obor vzděláváníUčební obory.
Tutorial: Engineering technology Topic: Pressure – flasks casting Prepared by: Ing. Elena Nová Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Přítomné časy, budoucí – will, minulý čas prostý - 6. ročník Základní škola Jakuba Jana Ryby Rožmitál pod Třemšínem Efektivní výuka pro rozvoj potenciálu.
© Robert Bosch GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing.
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.5.00/ NÁZEV PROJEKTU: Šablony – Gymnázium Tanvald ČÍSLO.
COMPARATIVES and SUPERLATIVES 1 Dostupné z Metodického portálu ISSN: 1802 – 4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným.
Jméno autora: Mgr. Olga Bayerlová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_18_AJ1G Ročník: II. Anglický jazyk Vzdělávací oblast: Jazyk a jazyková.
Budoucí čas prostý autor: Petr Baťa.
Jméno autora: Mgr. Olga Bayerlová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_18_AJ3E Ročník: II. Anglický jazyk Vzdělávací oblast: Jazyk a jazyková.
Microsoft Application Platform Spolehlivá, důvěryhodná, inteligentní.. Michal Hroch Server Product Manager Microsoft Česká republika.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Around London in 15 minutes Autor: Mgr. Zdenka Mléčková
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není –li uvedeno jinak, je tento materiál zpracován.
TO BE GOING TO Autor: Petr Baťa. Vazbu to be going to používáme k vyjádření budoucnosti. Dáváme ji přednost před budoucím časem prostým (will) v těchto.
Educational program: Mechanic - electrician Title of program: Technical training II. class Astable multivibrator Worked out: Bc. Chumchal Miroslav Projekt.
PREPOSITIONS ON, IN, UNDER Zmáčkni klávesu F5. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Lenka Čekalová. Dostupné z Metodického.
EU PENÍZE ŠKOLÁM Operační program Vzdělávání pro konkurenceschopnost ZÁKLADNÍ ŠKOLA OLOMOUC příspěvková organizace MOZARTOVA 48, OLOMOUC tel.: 585.
Konverzace v anglickém jazyce ročník
Setkání uživatelů SFX Statistické reporty SFX.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Násobíme . 4 = = . 4 = = . 4 = = . 2 = 9 .
1 Extreme programming v praxi Martin Junek, product manager
Uživatelé, Role, Schémata
DBS_I – PL/SQL Vojtěch Hemala ARI. 1/ ZALOZTE SI NASLEDUJICI TABULKY A NAPLNTE JE DATY PODLE VZORU INSERT INTO brew (jmeno) VALUES ('Litovel'); INSERT.
Vizualizace projektu větrného parku Stříbro porovnání variant 13 VTE a menšího parku.
Dělení se zbytkem 3 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Michal Augustýn Senior Software AVAST Software Microsoft Most Valuable Professional (ASP.NET/IIS) augi.cz.
Christmas in the english speaking countries Aj - REÁLIE 3.-5.ročník
ZOHO OFFICE Vypracovala: Iva Ptáčková, A11B0605P 1.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
IPZe laboratory Analysis of the communication over USB L Instructor: Straka Martin, Kaštil Jan.

Projekt PŘEDPOVĚĎ POČASÍ. Předpověď počasí na
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Operating Instructions 06B13 AutorLadislava Pechová Období.
NÁZEV ŠKOLY: Základní škola Javorník, okres Jeseník REDIZO: NÁZEV: VY_32_INOVACE_204_Systém organismů AUTOR: Jana Harbichová ROČNÍK, DATUM:
Tutorial: Mechanic - electrician Topic: Technical training II. class Printed circuit boards 2 Prepared by: Melichařík Lubomír Projekt Anglicky v odborných.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 The Internet and Its Uses Working at a Small-to-Medium Business or.
Výukový materiál zpracovaný v rámci projektu EU peníze školám Pořadové číslo: CZ.1.07/1.4.00/ Šablona: II/2 Sada: VY_22_INOVACE_AJ.3.33 Ověření.
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
EDITOR BY: SPRESS 15. ledna ledna ledna 2015.
Konference SI Praha Ladislav Přívozník is:energy czech a.s.
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Petr Chmelař UIFS FIT VUT JAVA pro PDB Kafe? Jako C++ Zrníčka 1 / 12 Java rychlokvaška pro PDB [ ]
Image Stitching II Linda Shapiro ECE/CSE 576.
Transkript prezentace:

Multimediální databáze PDB Demonstrační cvičení Koncepty pro sledování chodců

Motivace Business Media streaming / on demand ($) Průmysl CAD/CAM vývoj eVzdělávání Bezpečnost Medicína … Rostoucí trend Abstrakt anglicky

Multimediální databáze Bleskový úvod Podpora pro správu multimediálních dat doplněk tradičních databázových systémů Zaručují konzistenci, souběžnost, integritu Bezpečnost a dostupnost dat Manipulace Dotazování a získávání vysoce relevantních informací z obrovských kolekcí produkovaných dat dle popisu obsahu http://www.fit.vutbr.cz/~chmelarp/pdb/ Abstrakt anglicky

Multimediální data Nestrukturovaná data: Vizuální 2D obrázky 3D modely pohyblivé obrázky Dokumenty Audio Kombinace METADATA Exif, ID3, DICOM, MPEG-7… Abstrakt anglicky

Oracle® interMedia www.oracle.com/technology/products/intermedia/

Oracle® interMedia Rozšíření DB pro uchování, správu a dotazování obrázků, audia, videa a podobných pro libovolné aplikace Podporuje většinu formátů (JPEG, MPEG, QT, RM, …) Manipulace, zpracování obrazu, komprese Pro vývoj aplikací JDeveloper - ADF/UIX, Swing Application server - Servlet / JSP PL/SQL, Oracle Portal Streaming server (RealMedia, MS), … Rozšiřitelný (o zpracování řeči) www.oracle.com/technology/

Oracle® interMedia obsahuje Zdroj MM + umístění v tabulce (pod transakční kontrolou) na disku, webu, jinde (metainformace) Formát MM velikost, délka, rozlišení, komprese, … Metadata autor, copyright, popis datum, způsob pořízení Exif, IPTC-IIM, DICOM, XMP, libovolné XML U statických obrázků popis obsahu www.oracle.com/pls/db102/portal.portal_db?selected=7

Signature pro správu obsahu obrázků Barva Tvar Textura Umístění Signature (3-4kB) je vyrobené segmentací barvy, …

Prerekvizity JDBC SQLJ JDeveloper www.oracle.com/technology/sample_code/products/intermedia/

Oracle JDeveloper Poslední stabilní, plná, verze Neinstaluje se Registrace (není pro teroristy :) www.oracle.com/technology/software/products/jdev/ SQL Developer www.oracle.com/technology/software/products/sql/ Připojení Oracle Database 10g host: pcuifs1.fit.vutbr.cz port: 1521 SID: stud password = login

JDBC připojení set CLASSPATH=%ORACLE_HOME%\jdbc\lib\ojdbc14.jar; %ORACLE_HOME%\sqlj\lib\runtime12.jar; import java.sql.Connection; import java.sql.SQLException; import java.sql.DriverManager; import java.sql.Statement; import java.sql.PreparedStatement; import java.sql.ResultSet; import oracle.jdbc.OracleResultSet; import oracle.jdbc.OraclePreparedStatement; // register the oracle jdbc driver with the JDBC driver manager DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // connect pcuifs1.fit.vutbr.cz Connection conn = DriverManager.getConnection("jdbc:oracle:thin:login/password" + "@pcuifs1.fit.vutbr.cz:1521:stud" ); // note: set the autocommit to false for BLOBs (2-phase select-commit). conn.setAutoCommit(false); // create a JDBC Statement object to execute SQL in the database Statement stmt = conn.createStatement();

ORDImage OrdImage je objekt, (lepší než) BLOB Společný MM import oracle.ord.im.OrdImage; import oracle.ord.im.OrdImageSignature; set CLASSPATH=%ORACLE_HOME%\ord\jlib\ordim.jar; OrdImage je objekt, (lepší než) BLOB Společný MM

ORDSYS.ORDImage (DB) a OrdImage (Java) objekt OrdImage je Java objekt OrdImage je proxy pro databázový objekt Musí být vytvořeno z databázového ORDSYS.ORDImage, všechny operace provádí databáze

Vkládání obrázků do databáze CREATE TABLE image_table (id number primary key, image ordsys.ordimage, signature ordsys.ordimagesignature); CREATE SEQUENCE image_sequence INCREMENT BY 1 START WITH 1;

Vložení obrázku 1 // retrieve the next value in the sequence order String SQLquery = "SELECT image_sequence.nextval FROM dual"; OracleResultSet rset = (OracleResultSet)stmt.executeQuery(SQLquery); rset.next(); int nextval = rset.getInt("nextval"); // insert a row (nextval, initialized ORDImage) into image_table SQLquery = "INSERT INTO image_table (id, image, signature) VALUES (" + nextval + ", ordsys.ordimage.init(), ordsys.ordimagesignature.init())"; stmt.execute(SQLquery); // select the new ORDImage into a java proxy OrdImage object (imageProxy) // Note: for update (we will be uploading data into the ORDImage’s BLOB) String rowSelectSQL = "SELECT image, signature FROM image_table WHERE id = " + nextval + " FOR UPDATE"; rset = (OracleResultSet)stmt.executeQuery(rowSelectSQL); OrdImage imageProxy = (OrdImage)rset.getCustomDatum("image", OrdImage.getFactory()); // (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory()); OrdImageSignature signatureProxy = (OrdImageSignature)rset.getCustomDatum("signature", OrdImageSignature.getFactory()); rset.close();

Vložení obrázku 2 // load the image data from the goats.gif file into the ORDImage object // Note: and by extension into the database :-) imageProxy.loadDataFromFile(fileName); // automatically detect the image’s height, width, file format, and so on // Note: the proxy object forwards the request to the database to execute ORDImage.setProperties() on the server imageProxy.setProperties(); // generate an image signature for the specified image signatureProxy.generateSignature(imageProxy); String updateSQL = "UPDATE image_table SET image=?, signature=? where id=" + nextval; OraclePreparedStatement opstmt = (OraclePreparedStatement)conn.prepareStatement(updateSQL); opstmt.setCustomDatum(1, imageProxy); opstmt.setCustomDatum(2, signatureProxy); opstmt.execute(); opstmt.close(); // commit all our changes conn.commit();

Manipulace a vlastnosti obrázku // see slide "Vlození obrázku 2" imageProxy.setProperties(); // the image is selected into a proxy object (imageProxy), and then getXY methods are called. String rowSelectSQL = "select image from image_table where id = 1"; OracleResultSet rset = (OracleResultSet)stmt.executeQuery(rowSelectSQL); rset.next(); OrdImage imageProxy = (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory()); rset.close(); int height = imageProxy.getHeight(); int width = imageProxy.getWidth();

Konverze obrázků String rowInsertSQL = ("insert into image_table (id, image) " + "values (2, ordsys.ordimage.init())"); // get the source ORDImage object String srcSelectSQL = "select image from image_table where id=1"; ... OrdImage srcImageProxy = (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory()); // get the newly inserted destination ORDImage object String dstSelectSQL = "select image from image_table where id=2 for update"; OrdImage dstImageProxy = (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory()); // call the processCopy method (processing occurs on the SERVER) srcImageProxy.processCopy("maxscale=100 100 fileformat=jfif", dstImageProxy); // update the destination image in the second row String dstUpdateSQL = "update image_table set image=? where id=2"; opstmt.setORAData(1, dstImageProxy); // commit download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14297/toc.htm

Download Mazání je obyčejné SQL // export the data in row 2 String exportSelectSQL = "select image from image_table where id = 2"; OracleResultSet rset = (OracleResultSet)stmt.executeQuery(exportSelectSQL); // get the proxy for the image in row 2 rset.next(); OrdImage imageProxy = (OrdImage)rset.getORAData("image", OrdImage.getORADataFactory()); rset.close(); // call the getDataInFile method to write the ORDImage in row 2 to disk imageProxy.getDataInFile("row2.jpg"); Mazání je obyčejné SQL DELETE FROM image_table // restore database to its original state - drop image table and sequence stmt.executeQuery("DROP TABLE image_table"); stmt.executeQuery("DROP SEQUENCE image_sequence"); // commit all our changes conn.commit();

Ukázka 1 (www.fit.vutbr.cz/~chmelarp/pdb/)

Dotazování médií import oracle.ord.im.OrdAudio; import oracle.ord.im.OrdDoc; import oracle.ord.im.OrdImage; import oracle.ord.im.OrdVideo; String query = "select product_photo, product_audio," + " product_video, product_testimonials from" + " pm.online_media where product_id=3117"; PreparedStatement pstmt = conn.prepareStatement(query); OracleResultSet rset = (OracleResultSet)pstmt.executeQuery(); if ( rset.next() ) { OrdImage imgProxy = (OrdImage)rset.getORAData( "product_photo", OrdImage.getORADataFactory()); OrdAudio audProxy = (OrdAudio)rset.getORAData( "product_audio", OrdAudio.getORADataFactory()); OrdVideo vidProxy = (OrdVideo)rset.getORAData( "product_video", OrdVideo.getORADataFactory()); OrdDoc docProxy = (OrdDoc)rset.getORAData( "product_testimonials", OrdDoc.getORADataFactory()); } String audFormat = audProxy.getFormat(); String vidMimetype = vidProxy.getMimeType();

Doručování médií (Servlet) Je možné použít třídy OrdHttpResponseHandler nebo OrdHttpJspResponsehandler pro doručení HTTP klientovi. import oracle.ord.im.OrdHttpResponseHandler; protected void doGet(HttpServletRequest reqest, HttpServletResponse response) throws ServletException, java.io.IOException { // obtain oracle.ord.im.OrdImage object // imgProxy follows the Section "Media Retrieval in Java" ... // deliver the image data to the browser OrdHttpResponseHandler handler = new OrdHttpResponseHandler(request, response); handler.sendImage(imgProxy); }

Upload médií (JSP) <!-- HTML FORM --> <form action="upload.jsp" method="post" enctype="multipart/form-data"> id: <input type="text" name="id"/> description: <input type="text" name="description"/> Photo: <input type="file" name="photo"/> </form> // JSP import // <%@ page import="oracle.ord.im.OrdHttpUploadFormData" %> // <%@ page import="oracle.ord.im.OrdHttpUploadFile" %> // In JSP als nächstes folgt muß in den <% %> sein :) OrdHttpUploadFormData formData = new OrdHttpUploadFormData( request ); formData.parseFormData(); // Get the description, location, and photo. String id = formData.getParameter( "id" ); String description = formData.getParameter( "description" ); OrdHttpUploadFile photo = formData.getFileParameter( "photo" ); ... formData.release(); photo.loadImage(imgProxy); // und so veiter update photo... download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14302/ch_websrvtier.htm#sthref135

Ukázka 2 (www.fit.vutbr.cz/~chmelarp/pdb/)

Podobnostní vyhledávání download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14302/ch_cbr.htm

Vyhledávání dle obsahu Doporučuji používat IMGSimilar a IMGScore raději než evaluateScore a isSimilar následujícím způsobem: SELECT img1.id, img2.id, ORDSYS.IMGScore(123) as distance FROM image_table img1, image_table img2 WHERE ORDSYS.IMGSimilar(img1.signature, img2.signature, 'color="0.3" texture="0.3" shape="0.3" location="0.1"', 100, 123) = 1 AND img1.id <> img2.id AND img1.id = 1 ORDER BY distance Protože je možné použít index: CREATE INDEX image_index ON image_table(signature) INDEXTYPE IS ordsys.ordimageindex PARAMETERS ('ORDImage_Filter_Tablespace = USER1, ORDImage_Index_Tablespace = USER2') download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14297/ch_imgref.htm

Literatura k projektu Stránky předmětu PDB Sklad projektu PDB http://www.fit.vutbr.cz/~chmelarp/pdb/ Oracle Technology Network www.oracle.com/technology/ interMedia Documentation www.oracle.com/pls/db102/portal.portal_db?selected=7 interMedia Sample Applications www.oracle.com/technology/sample_code/products/intermedia/ … http://java.sun.com/javase/6/docs/technotes/guides/imageio/ JAI, JMF, …

Dotazy… ? Organizace projektů… Děkuji. ctrl + S