Why doesn't RDBMS support array types for columns?

Lets take an example of a blog engine.

You have a blog, a blog has posts, posts have tags for organizational purposes. After deciding that the interference problem is not trivial in an RDBMS environment, we go to Google for guidance and find the following neat summary of solutions as a first hit: design and related tests . However, they all come at the expense of performance or complexity. It seems that the NoSQL approach, allowing you to store a list of tags inside a column (in NoSQL, we can store documents in documents), will solve the problem. Why not SQLServer / Qracle / MySQL / Postgres / etc. is there any

At first I thought it might be due to different sizes. But any noticeable RDBMS score allows some form of varchar and text (significant in size) to be used. So the size of the column (and the fact that the same column in different rows will have different sizes is not a problem). Therefore, instead of saving the text fragment, we will save the list of elements of the same type (an array in most languages) in the column. Let's index it for effective exact search matches. And at least for all the use cases that I need for NoSQL DB, it will disappear as needed (I know that many people use scalability, but I do not know and do not care about it, I do not have scalability problem, I have nightmares service). We simplified the design of our circuit (every bit is as clean and simple,as a document in a NoSQL document), and excellent performance due to efficient indexing. It is still strange that open source databases (like Postgres) do not have a kind of patch for this feature. Field-motivated developers seem capable of creating new databases from scratch in the future.

Am I missing some overwhelming technical hurdle, or are the aforementioned RDBMS vendors simply lazy or a thing of the past?

+5
source share
4 answers

The reasons are historical.

Resolving values โ€‹โ€‹of any type of "collection" inside a cell in a table was usually considered a violation of 1NF, as it was implied, "by definition", the possibility of "repeating groups" occurring inside (one row).

The theory has changed a bit from the early days of SQL, and currently the theory claims that:

(a) , Array/Set/Collection, (b) 1NF, . ( , SQL "" , .)

. , , , , .

+2

: . NoSQL , .

"" ( " " ) : XML, JSON, .. ( , mabn ) . , SQL Server XML. , ( ) - NoSQL .

NoSQL - , NoSQL n- , ?

, , . ? - " ".

.

+2

Why SQLServer / Qracle / MySQL / Postgres / etc.

They are not?

+2
source

You can save the table inside the intersection of the column and row. You can do everything that you could do with arrays in columns and more.

+1
source

All Articles