18
|
1
|
#+title: A Lispy Database |
|
2
|
#+options: toc:t h:1 |
20
|
3
|
#+setupfile: ../../../clean.theme |
18
|
4
|
One of the key features missing in the =core= is a DBMS. The first, |
|
5
|
and often only choice for this need in companies of today is |
|
6
|
a SQL RDBMS. |
|
7
|
|
|
8
|
There are client-server systems like PostgreSQL and MySQL, and |
|
9
|
embedded offerings like SQLite. Whatever lang you use you can count on |
|
10
|
there being SQL support[fn:1]. To support all the different SQL |
|
11
|
flavors though, a new abstraction has been summoned - the ORM. |
|
12
|
|
|
13
|
The ORM maps the object system of your lang to SQL tables, columns and |
|
14
|
rows and provides an API for you to manipulate the database in a more |
|
15
|
idiomatic way. |
|
16
|
|
|
17
|
You might ask yourself, why choose anything else? For good reason. We |
|
18
|
all know friendly neighborhood SQL and understand it. Many of us have |
|
19
|
never used anything else because we don't /need/ to. You can represent |
|
20
|
fairly complex relationships in the RDBMS model and have an |
|
21
|
ecosystem that supports it wherever you go. |
|
22
|
|
|
23
|
My answer is that just because SQL is good enough, doesn't mean it's |
|
24
|
always the best choice. |
|
25
|
|
|
26
|
[fn:1] |