Why SQL? When did you start to use it?
My first contact with SQL was in 1998. And I could not believe that such a thing actually exists. You basically ask a question and get a response. I thought that is coming right out of Star Trek!
However, it took more than 10 years before I specialized in SQL. In this time I had several roles like developer, architect, team leader and I even spent some time as sysadmin. One day I noticed two patterns:
– Whenever we have a problem, the database is usually involved in some way
– Once the problem was solved, it always turns out that we where using the database wrong
So I was wondering why we are making so bad use of SQL and this how my SQL journey started.
What are the new stuff around SQL and what does every developer need to know?
I could write a full book about this question alone (actually — I have!).
I’ll keep it short and thus on a high level:
– SQL is not the same as “relational database”
The relational model is just **one** way in which you can use SQL databases. There are other ways and they are equally valid.
– SQL is not a “query language” it is a “transformation language”
One of the key ideas of SELECT is transform data from a persistent data format into another format which is more useful for getting one particular task done. As there are probably many different things you want to do with your data, an easy but powerful way to transform data is very helpful.
Keep in mind that the shape of your data does not change as often as what you want to do with that data. SQL solves this problem by decoupling the persistent data format from whatever format is a better fit for each processing you need to do.
Can we make a little recap on how SQL have evolved since 1992?
I consider the update from 1999 as the “big bang” of modern SQL. This was when SQL evolved the relational idea. About 80% of today’s capabilities of SQL are not related to the relational idea.
Here are some milestones:
– 1999: rich data types (arrays, composite types), recursive queries
– 2003: “document store (XML)” and Window functions. If you don’t know window functions, you don’t know SQL.
– 2011: Time traveling (non-destructive INSERT, UPDATE, DELETE)
– 2016: JSON and row pattern matching
The next standard is already being worked on!
Which database do you recommend the most?
The right one, of course.
There are different needs and those needs justify different directions.
However, if you ask about a safe base to get started with modern SQL, then I suggest using PostgreSQL.
Did you enjoy here in Bulgaria? What do you think about the developers here? Did you have the chance to talk more with any on the topic around SQL, Query, etc.?
Being the “SQL Renaissance Ambassador” involves a lot of traveling and, unfortunately, sight seeing is not among my duties :/
In other words: I like what I’ve seen: The airport, taxis, the conference venue and the hotel 🙂
The reason I’m going to conferences is to interact with people. I’ve talked to quite some developers and I’m happy I could convince them to have a second look at SQL.
Can you share your vision on the future of technology? What would be the next big thing?
I actually prefer to take the opposite approach because I cannot see into the future. When a new hype comes up, don’t ask “what’s next” — ask what will remain once the hype is over. It is still a question difficult to answer, but the answer is something which is worth learning.
I like to think in terms of “half-life period of knowledge”. If you learn If you learn something new, ask you self how long that know-how will be useful. I hope you trust me when I say the half-life period of an internationally standardized language like SQL is longer than that of the hottest NoSQL system you just saw on HackerNews.