SurrealDB - niezwykła baza danych przedstawiona w 100 sekund (film)
Fireship opublikował niedawno film na temat SurrealDB, nowoczesnej, otwarto-źródłowej bazy danych SQL, która oferuje wiele funkcji marzeń każdego programisty. Została uruchomiona przez Jamie i Toby Morgan Hitchcock w 2015 roku i udostępniona publicznie w lipcu 2022 roku. SurrealDB jest bardzo wszechstronną bazą danych, która wykorzystuje różne paradygmaty, takie jak relacyjne, grafowe i dokumentowe, aby prostota mogła być udostępniona za pomocą języka zapytań podobnego do SQL. Ta wielomodelowa baza danych zapewnia możliwość pracy z danymi w czasie rzeczywistym, posiadania wykresów, a także wsparcia geospatial data, a wszystko to z zachowaniem zgodności ACID. SurrealDB jest doskonałym narzędziem do obsługi złożonych relacji w danych, co czyni go wyjątkowym na rynku baz danych.
SurrealDB wyróżnia się swoją elastycznością, gdyż domyślnie nie wymaga schematu, co pozwala na swobodną kreację danych w dowolnej tabeli. Możliwe jest jednak również przejście na tabelę ze ściśle określonym schematem, gdy model danych staje się bardziej zdefiniowany. Dzięki wsparciu dla warunków transakcyjnych oraz aktualizacji w czasie rzeczywistym, programiści mogą łatwo słuchać zdarzeń z aplikacji front-end, podobnie jak w Firebase. Co więcej, SurrealDB oferuje również wbudowane funkcje analizy danych oraz możliwość restrykcji dostępu do danych.
W tym filmie Fireship przedstawia, jak łatwo jest rozpocząć pracę z SurrealDB. Pierwszy krok to zainstalowanie bazy na swoim komputerze i uruchomienie jej lokalnie za pomocą CLI. Z pomocą prostych poleceń SQL, takich jak CREATE, możemy dodać rekordy do bazy danych. Ważne jest, aby każdy rekord miał unikalne ID składające się z dwóch części, co tworzy dodatkową elastyczność w dziedzinie zarządzania danymi. Programiści mogą również używać polecenia SET do definiowania danych danego rekordu lub CONTENT dla bardziej złożonej składni JSON.
Dalsze możliwości SurrealDB stają się jeszcze bardziej interesujące z obsługą zapytań. Programiści mogą używać klasycznych zapytań SELECT z klauzulą WHERE, a także korzystać z funkcji wbudowanych, takich jak COUNT do agregacji danych. SurrealDB pozwala także na umieszczenie własnej logiki JavaScript bezpośrednio w zapytaniach, co znacznie zwiększa elastyczność. Bez użycia połączeń zagranicznych można przechowywać unikalne ID rekordów w innych rekordach, co pozwala na łatwe zapytania przy użyciu notacji kropkowej.
Na koniec Fireship podkreśla, że film trwał tylko 100 sekund, co w tym przypadku jest dość niezwykłe, biorąc pod uwagę szereg funkcji i możliwości, jakie SurrealDB dostarcza. Obecnie film ma 435905 wyświetleń i 22666 polubień, co świadczy o dużym zainteresowaniu tym nowym narzędziem wśród programistów. Jeżeli chcesz zgłębić temat jeszcze bardziej, Fireship zaprasza na nowy kanał Beyond Fireship, gdzie znajdziesz więcej materiałów związanych z SurrealDB.
Toggle timeline summary
-
Wprowadzenie do SurrealDB, nowej otwartoźródłowej bazy danych SQL.
-
Kluczowe funkcje obejmują zgodność z ACID, skalowalność i różne modele danych.
-
SurrealDB łączy paradygmaty relacyjne, grafowe i dokumentowe.
-
Używa języka podobnego do SQL do zapytań.
-
Założona przez Jamie i Toby Morgan Hitchcock w 2015 roku, udostępniona jako open source w lipcu 2022.
-
Zbudowana w Rust, wspiera wiele warstw trwałości.
-
Obsługuje złożone relacje bez tradycyjnych złączeń.
-
Domyślnie nie ma schematu, ale wspiera tabele ze schematem.
-
Transakcje zgodne z ACID pomiędzy wieloma tabelami.
-
Aktualizacje w czasie rzeczywistym, podobne do Firebase.
-
Funkcje obejmują dane geoprzestrzenne i zarządzanie uprawnieniami.
-
Instalacja i użycie SurrealDB za pomocą CLI i REST API.
-
Tworzenie nowych rekordów za pomocą instrukcji SQL.
-
Zapytania do danych za pomocą instrukcji SELECT i klauzul WHERE.
-
Wstawianie logiki JavaScript bezpośrednio do zapytań.
-
Zastosowanie identyfikatorów rekordów do relacji zamiast kluczy obcych.
-
Krawędzie grafowe mogą być dodawane pomiędzy rekordami dla efektywnego zapytania.
-
Podsumowanie i zaproszenie do eksploracji poza SurrealDB.
Transcription
SurrealDB, an open-source, new SQL database that delivers every feature you've ever dreamed of. ACID, Scalable, Full-text Search, Real-time, Graph, Relational, Multi-tenant, Temporal, Schema-less, Schema-full, Server-less, Embedded, are all words that can describe SurrealDB, a multi-model database that combines elements of relational, graph, and document paradigms into a simple package that can be queried with an SQL-like language. Development was started by Jamie and Toby Morgan Hitchcock in 2015, and it was open-sourced in July 2022. The engine is written in Rust, and can support multiple persistence layers, like TyKB to scale horizontally in the cloud, or as a single node, both in memory or on disk. Most importantly though, it can handle complex relationships like traditional relational databases, but does so without joins. Instead, it uses techniques like record links and graph connections that not only handle complex data models, but also result in concise, developer-friendly code. By default, it's schema-less, which means you can implicitly create unstructured data in any table. However, you can opt into schema-full tables when the data model becomes well-defined. It's also ACID-compliant, allowing you to run transactions across multiple tables, which also emit events when the data changes, so you can listen to real-time updates from a front-end application, kind of like Firebase. And the feature list goes on with things like geospatial data and predefined analytics views, all of which can be locked down with permissions out of the box. To get started, install it on your machine, then run it locally with the CLI, then execute code using its REST API or a client library for your favorite language. Just like SQL, we can use statements like CREATE to add a record to the database. Every record has a unique ID comprised of two parts. The left side is the table the record belongs to, and the right side can be whatever you want, or if left out, it will be automatically generated. And now use SET to define the data for that record. Or try CONTENT for a more JSON-like syntax. Now that we have some data populated, we can query it with a SELECT statement. It supports the WHERE clause to filter by a condition, and has a variety of built-in functions like COUNT to fetch aggregate data, or IS to validate common data formats like an email. And if that's not enough, you can even embed your own JavaScript logic directly into a query. But remember, there are no joins in the Surreal Life. Instead of foreign keys, record IDs can be stored in any other record. That makes it possible to query that data using a simple SELECT statement that uses dot notation to specify the fields that should be joined in. That takes care of most relationships, but you can even add graph edges between records using the RELATE statement. You can now query this data efficiently using arrows to traverse between nodes and edges. This has been SurrealDB in 100 seconds. If you want to go beyond 100 seconds, check out my new channel, Beyond Fireship, where I'll be taking you on an extended Surreal journey. Thanks for watching, and I will see you in the next one.