Classification: For internal use only

Even if you use only standard XQuery, you may not find that your queries are 
(sufficiently) portable to other XML databases.  Why?  I know people who've 
tried, and because different XML databases index the content differently, a 
performant query from database A may run on database B, but is often not a 
performant query on database B.  So people end up rewriting their queries 
anyway for performance reasons.

If your problem is small enough, and your performance requirements are modest 
enough, you might be able to run the same XQueries on different XML databases.

My understanding is that big migrations between relational databases are just 
an problematic, from what I've ever heard from people.  The idea that it's easy 
to migrate from one database to another doesn't seem to ever be borne out in 
practice, not above a certain size and complexity of application.

Cheers, Tony.
____________________________________________________

Anthony Coates
VP | Solution Architecture Lead

Deutsche Bank AG, Filiale London
Global Technology and Operations (GTO)
99 Bishopsgate, EC2M 3XD London, United Kingdom Tel. +44 20 754 77217 Mobile 
+44 79 0543 9026 Email [email protected]

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Paul Hoehne
Sent: 15 January 2015 17:10
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] A very general queston

The short answer is that you could use just the ³W3 standard² XQuery libraries 
in MarkLogic, XPath, XSLT, and FLWOR expressions and a trivial amount of 
MarkLogic specific items.  Advanced search in MarkLogic is handled through a 
combination of libraries (cts and search) that are MarkLogic specific.  You can 
do a significant amount of work using standard XQuery, FLWOR, and XPath 
statements, but eventually you will want/need to use something outside the 
supported standards functions.

MarkLogic provides support for some great features such as geospatial queries, 
semantics (used quite a bit in publishing), and conversion of binary (MS Word, 
PDF, Excel) documents.  But this is non-standard.  As are the advanced search 
options.

I could imagine writing an application that used only the portable parts of 
XQuery and XPath, but would find that limiting and would leave a lot of great 
product features behind.  I would also still need to use a few MarkLogic 
extensions unless I was (basically) making a Œread-only¹ application.

The degree to which you adopt MarkLogic features for your application will 
determine the degree of portability of your application.  But the trade off is 
that many of these non-portable features allow you to more quickly develop more 
feature rich and interesting applications.  You would not lose any horizontal 
scalability if you restrict yourself to only ³portable² features.

While it¹s true that you can migrate SQL in theory, in practice this is 
difficult to impossible for most real world applications.  Any time you 
introduce procedural extensions (such as PL/SQL or Transact SQL), the SQL code 
loses its portability.  Bespoke applications are generally coded to a single 
database.  Other applications, like a CMS, might have multiple backends but 
will have separate code to create databases in some supported collection of 
databases (MySQL Postgres, Oracle, etc.) for which they have some vendor 
specific code.

In the end, however, non-trivial applications based on any product often make 
use of some extensions specific to a vendor that are provide some facility not 
part of the standard.


Paul Hoehne
Senior Consultant
MarkLogic Corporation
[email protected]
mobile: +1 571 830 4735
www.marklogic.com

Click http://po.st/hMGDFm to get your free NoSQL For Dummies e-book!




On 1/15/15, 11:01 AM, "Martin Mueller" <[email protected]>
wrote:

>
>I have a very general question, and it comes from a position of almost
>complete ignorance.
>
>I understand that MarkLogic is (among other things) an XML database and
>that xquery is its central programming language. I also understand that
>MarkLogic has some vendor specific features. And finally I understand
>that MarkLogic scales "horizontally" and that it can probably handle
>very large data sets with greater ease than open source tools.
>
>Now my question: can you use MarkLogic in such a way that you only
>standards compliant xquery so that you could take all or part of a data
>set with its accompanying code and move it to another database? And if
>you stay away from vendor specific extension, do you give up the
>promise of easy 'scaling'?
>
>Here is another way of asking the same question.  If you have a
>database project that was done in MySQL it is work, but not a
>tremendous amount of work, to migrate the project to Postgresql or the
>other way. Is roughly the same thing true of MarkLogic or will it be
>the case that an effective and efficient implementation of a project in
>MarkLogic is likely to be very closely tied yo MarkLogic specific features?
>
>Martin Mueller
>Professor emeritus of English and Classics Northwestern University
>
>_______________________________________________
>General mailing list
>[email protected]
>http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general


---
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures and to 
http://www.db.com/unitedkingdom/content/privacy.htm for information about 
privacy.
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to