changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > blog / annotate draft/a-lispy-database.org

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