Presentation is loading. Please wait.

Presentation is loading. Please wait.

Virtuoso Universal Server Open-Source Edition Anton Avramov.

Similar presentations


Presentation on theme: "Virtuoso Universal Server Open-Source Edition Anton Avramov."— Presentation transcript:

1 Virtuoso Universal Server Open-Source Edition Anton Avramov

2 Openlink Software - Кратка история 1992 – Основана 1992 - Разработка на ODBC драйвери 1998 - Купува Kubl от Ори Ърлинг и започва проекта Виртуозо 2000 - Сформира се мултинационален екип България, Русия, Новосибирск, Холандия, Финландия, САЩ, Англия и др. 2006 - Пуска се Open-Source Версия

3 Проектът Virtuoso Virtuoso Universal Server –DB Server, WEB Server, … Компилирана на 32 платформи –Linux –Windows –MacOS –Solaris –SunOS –FreeBSD –HP-UX –….

4 Проектът Virtuoso - възможности Database Server –SQL-200n (including SQLX) –Stored procedures, User Define Type, Views, Triggers, Indexes, Free-text indexes –XML Storage, XML Free text index, XSLT, XML Schema, XPath, and XQuery Web Application Server –Hosting (PHP, Perl, Python, Java, CLR,.Net & ASPX Host, Mono, Ruby) –VSP, VSPX Web Services SOAP, WSDL, UDDI, WS-Security, WS-Routing, WS-ReliableMessaging, WS-Policy, WS-Addressing, BPEL4WS Internet & Web –HTTP, WebDAV, SMTP, POP3, LDAP, FTP, NNTP –Blogging & Weblogs … и други

5 Application Server – VSP Текстов файл в файловата система или WebDav Автоматучно компилиране до процедура в базата дани <?vsp declare name varchar; name := ‘Pesho’; ?> My name is.

6 Application Server - VSP SQL oптимизатор на заявките <?vsp for( SELECT name, address FROM customers WHERE country = ‘BG’) do{ ?> <?vsp } if (true) { DBA.DB.myprocedure(params); } ?>

7 Database Начини за връзка –ISQL – Interactive SQL –Conductor – Web Interface http://localhost:8889/conductor –ODBC, JDBC –Visual Studio Plugin – OPL Explorer …. $isql localhost:1111 dba dba SQL> select * from my_table; … SQL> select my_procedure(); ….

8 Database Views, Triggers – Instead of INSERT INTO Customers_Orders View Customers_Orders Table CustomersTable Orders INSTEAD OF INSERT TRIGGER INSERT INTO Customers INSERT INTO Orders

9 Database - Indexes SQL Inverse Functions -- Създаваме view CREATE VIEW euro_item AS SELECT id, dollar_to_euro (price) as price, name FROM item; -- Декларираме реципрочни функций db.dba.sinv_create_inverse ('euro_to_dollar', 'dollar_to_euro', 1); -- Изпълняваме запистване SELECT * FROM euro_item WHERE price > 100; -- Нормално това би означавало SELECT * FROM item WHERE dollar_to_euro (I_price) > 100; -- Но благодарение на реципрочната функция се изпълнява SELECT * FROM item WHERE price > euro_to_dollar (100);

10 Database – Free text indexes Контрол върху индексираните данни CREATE TABLE channels (c_id integer,title varchar, primary key (c_id); CREATE TABLE articles (c_id integer references channels, a_id integer,content long varchar, primary key (c_id, a_id); CREATE TEXT INDEX ON articles (content) using function ; CREATE PROCEDURE articles_content_index_hook ( inout vtb any, inout i_id any ) { vt_batch_feed (vtb, (SELECT title FROM channels WHERE a_id = i_id), 0); return 0; }; SELECT TOP 10 * FROM articles WHERE contains(content, ’sample’);

11 Database – XML Support CREATE TABLE my_xml (id integer, content any); INSERT INTO my_xml (1,xtree_doc(’ text ’)); SELECT * FROM my_xml WHERE xpath_eval(‘//node[@attr = “hello”]’); SELECT * FROM my_xml WHERE xpath_contains(‘//node’,’text’); CREATE TEXT XML INDEX my_xml(content); SELECT * FROM my_xml WHERE xcontains(content, ’//node[. = “text”]’); SELECT * FROM my_xml WHERE xcontains(content, ’//node[text-contains (., “text”) ]’);

12 Database – XML (FOR XML Clause) RAW, AUTO, EXPLICIT xmla (‘ SELECT "CategoryID", "CatName", "ProdName", "ProductID" FROM "Categories" as "category", "Products" as "product" WHERE "product"."CategoryID" = "category"."CategoryID" FOR XML AUTO ELEMENT '); -------------- 1 Beverages Chai 1 Chang 2 … …

13 Database – XML - SQLX SELECT XMLELEMENT ('FullAddress', XMLATTRIBUTES ( "PostalCode", "City"), xtree_doc (' WA '), xquery_eval('//@country', xtree_doc(' ')), XMLELEMENT('emp', "LastName")) FROM "Demo"."demo"."Employees“; ---------------------------- WA Davolio WA Fuller...

14 UDT – User Defined Types CREATE TYPE my_udt as ( A integer default 12 ) method negative() returns integer; CREATE METHOD negative () returns integer for my_udt { return self.A * -1; } CREATE TABLE udt_table (ID integer primary key, DATA my_udt); INSERT INTO udt_table (ID, DATA) VALUES (1, new my_udt ()); SELECT C.DATA.A FROM udt_table C where C.ID = 1; SELECT C.ID FROM udt_table C WHERE C.DATA.A > 10; SELECT C.ID FROM udt_table C WHERE C.DATA.negavite() < -10;

15 WebServices – SOAP CREATE TYPE “WS”.”soap_demo”.soap_udt as () method getCurrency( in cnt_code varchar) returns varchar; CREATE METHOD getCurrency ( in cnt_code varchar) returns varchar for “WS”.”soap_demo”. soap_udt { return (SELECT amount FROM currencies WHERE code = cnt_code); }; vhost_define(vhost=>'*ini*', lhost=> '*ini*', lpath=> '/myendpoint', ppath=>'/SOAP/', soap_user=> ‘soap_demo') ); GRAND EXECUTE ON “WS”.”soap_demo”.soap_udt TO soap_demo; http://localhost:8889/myendpoint/services.wsdl http://localhost:8889/myendpoint/services.vsmx

16 RDF Database Що е то Semantic Web?

17 RDF Database Аз направих тази статия!

18 RDF Database... <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" >... XML: A Disruptive Technology http://c.moreover.com/click/here.pl?r123 XML...

19 SPARQL Намери ми всичко …. PREFIX dc: PREFIX ns: SELECT ?title ?price WHERE { ?x ns:price ?price. FILTER (?price < 30). ?x dc:title ?title. } titleprice "The Semantic Web"23

20 Въпроси? Контакт: Антон Аврамов aavramov@openlinksw.com Връзки: http://virtuoso.openlinksw.com/wiki/main/Main/ http://sourceforge.net/projects/virtuoso http://virtuoso.openlinksw.com/ http://www.openlinksw.com/


Download ppt "Virtuoso Universal Server Open-Source Edition Anton Avramov."

Similar presentations


Ads by Google