Hacker News new | ask | show | jobs
by arh68 558 days ago
Atomic means nondecomposable [1]. I dare say array-typed values are not atomic.

Re: "(instructor_id, List<skill_id>); PK(instructor_id)”, are your Lists sorted ? Are your Lists actually Sets?: what prevents `insert values (100, [2, 2, 1])` ?

If you think those are isomorphic, how about “(json_data); PK(json_data)” ? With, you know, all the same data in the JSON. Tomato, tomato ?

I’ll just link this [2] PDF that seems to describe the present

> Does this mean that SQL:1999 allows databases that do not satisfy first normal form? Indeed, it does, in the sense that it allows “repeating groups”, which first normal form prohibits. (However, some have argued that SQL:1999’s ARRAY type merely allows storage of information that can be decomposed, much as the SUBSTRING function can decompose character strings—and therefore doesn’t truly violate the spirit of first normal form.)

[1] at least, according to Codd

[2] https://www.cl.cam.ac.uk/teaching/0304/Databases/sql1999.pdf