Michael Reichner's blog
The other day I watched an ODTUG webinar "Thinking Clearly about XML" presented by Marco Gralike. You can view an archived version of the presentation at https://www3.gotomeeting.com/register/660686966.
The majority of the presentation discussed how to store the data while retaining its XML structure. Marco discussed various methods, most of which were built using the XMLType container.
Now before I start in here, I want to make it clear that Marco was specifically tasked with covering Oracle's native XML functionality in this presentation. And before he got into the meat of things, he hinted that he would do things differently in his own projects. That said...
XML is used in a lot of different ways - most notably web API output, RSS, even application configuration files.
XML works reasonably well as a transport format - well enough, at least, that most APIs offer it as an option.
But when it comes to your DBMS, XML is a poor choice for data storage.
First of all, query performance is horrendous. In Marco's presentation, the second best performing option took 12 seconds to query an XMLType container populated from a 100MB XML file. (The insert performance is pretty bad, too. But since any given piece of data only gets inserted once, whereas the number of queries against that data is theoretically unlimited, insert performance is of less concern.)
Second, you need to query the data using Xpath or Xquery. Developers have enough trouble writing SQL. They don't need to be burdened with another query language/paradigm.
Third, one of the biggest complaints against XML is its verbosity. Indeed, it is often the case where the XML markup within a file is larger than the data itself - and not just in the trivial case. XML bloat is a significant contributing factor in the growing popularity of JSON as an alternative transport markup. If you've got a lot of data, you're going to end up wasting a lot of disk space storing markup.
10gen has organized a local MongoDB user group, and we're welcoming them to Philly by co-hosting their first meetup.
You can register at the PhillyDB meetup site.
- Login to post comments
"Shell scripts commonly, if unknowingly, compose five (of six) primitive relational-algebraic operations on these tables: union, difference, projection, selection and renaming:
cat acts like union;
sed and grep act like selection;
cut acts like projection;
awk can perform renaming; and
diff acts (almost) like difference.
Relational algebra (whose sixth primitive operation is Cartesian product) is equivalent to both relational calculus and SQL.
Cartesian product (and equijoin) are not difficult to create in bash."
http://matt.might.net/articles/sql-in-the-shell/
if unknowingly, indeed...
- Login to post comments
The new year always brings a flurry of activity. Database Month looks especially promising.
The NYC MySQL group is organizing a bunch of presentations, and it looks like they will be streaming all of them live.
PhillyDB has been invited to participate, and we're exploring a couple of topics.
Update: Unfortunately, the timing didn't work out for PhillyDB. We look forward to this being an annual event, and participating next year!
- Login to post comments
Good presentation on using tcpdump, the Percona Toolkit and gnuplot to detect MySQL performance problems.
Measuring Scalability and Performance with TCP, Baron Schwartz, Percona is archived on AWS.
Much of the presentation was based on a Percona white paper Forecasting MySQL Scalability with the Universal Scalability Law
Don't expect to absorb all of this in the first viewing.
- Login to post comments
We've pushed a bunch of changes to GroupsFinder.
Event Listings
We're excited to announce that GroupsFinder now also aggregates the events organized by the groups we list. (We list all of the groups out there - independents and mothership groups, as well as those hosted through Meetup, Google groups, etc.)
You can view all upcoming events at any time on the GroupsFinder site. If you live in or near a larger city, you can track upcoming events via email, Twitter and RSS.
Global Listings
Our group (and event) listings have expanded beyond USA/Canada. We now have group listings from 69 countries across the globe. Is your group listed?
We've also upgraded the design, and added a new category for design groups.
- Login to post comments
Nate Gasser has put together a great set of presentations on "MVC development in PHP and JavaScript", and he has graciously invited us to cohost.
Register at the PhillyDB meetup site.
- Login to post comments
This course will introduce core database concepts and provide instructions on using popular open source (and free) database systems to help new users sink their teeth into SQL.
Register at the PhillyDB meetup site.
- Login to post comments
This presentation will cover one of the lesser known, but extremely powerful NoSQL solutions called Riak. Starting with high level insight into NoSQL as a whole, drilling down to what Riak is and the solutions it is best for, and finishing with a demonstration of its capabilities and usage via client language libraries.
Register at the PhillyDB meetup site.
- Login to post comments