Why XML format violates Normalization Principles?


In this book: Regina Obe & Leo Hsu, PostgreSQL Up & Running, p. 101. It is written as an introduction to PostgreSQL XML data-type:

The XML data type, similar to JSON, is “controversial” in a relational database because it violates principles of normalization.

Without further explanation. Could someone detail what is normalization principles and why XML does violate some of those principles.

By : jlandercy


The relational model is a first-order logical model, meaning that variables in our predicates can only contain values. Any structure / associations among values should be recorded as relations so that normalization and other relational features like queries and constraints can operate on them.

Storing complex values like XML or JSON as opaque values is not a problem, but when we interpret these as data structures, we have a higher order model (predicates which vary over predicates). Such models are much more complicated to deal with in general (despite looking more natural at first). For example, it would require additional operators to traverse, join, manipulate, compare and constrain (parts of) hierarchies.

By : reaanb

There are many tutorials on relational database normalization in books and on the web. See for example https://en.wikipedia.org/wiki/Database_normalization

First normal form says that a column should contain only "atomic" or "indivisible" values - which if you interpret it over-strictly means you're not even allowed to store a date. Storing an XML document in a column certainly goes against that principle. Which doesn't mean it's necessarily a bad thing to do, just that you need to be aware of the consequences (which generally means that updating the database and keeping it consistent is going to be more difficult).

This has happened to me a few times already i.e. when a binary doesn't finish processing due to connection drop or other issues (on apple side).

Just upload a new build and use that build for release or test flight. Don't worry about the build that never finishes. Just ignore it and move on.

If you are still seeing build 2 as the latest under testfligth section, then logout, clear your browser cache, log back in and see. Clearly your build 3 is the latest one. itunesconnect is super flaky.

Use apple support as a last resort. They will take days to solve something as simple as this.

By : Sam B

This video can help you solving your question :)
By: admin