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
