It's impressive to see Oracle and Microsoft remaining in the top 3 as they transition to the cloud. And one has overtaken the other in market share because it's not only one database (there's SQL Server, and there's PostgreSQL)
Posts by Franck Pachot
If you want to compare BSON with OSON, the Oracle Database datatype for JSON, you should compare the Mutable BSON Document, which is the structure MongoDB uses to access documents and read and update individual fields.
dev.to/franckpachot...
Being able to read the screen in a sunny place, that's a great feature 😎 Still after one year with Mac, I'll be happy to switch back to Windows soon. Apple hardware is great but software - feels like Win98 to me in terms of user experience
I finally published my book about Postgres!
Check it out here: lnkd.in/eakHPn6E
Thanks @alexrios.me for the very good feedback, and @franckpachot.bsky.social for taking the time on reading the book and writing the foreword.
More details here:
www.linkedin.com/pulse/my-boo...
Many SQL DBAs argue: “I’ve never seen a production app change its database. Why make it database-agnostic?” www.linkedin.com/posts/franck...
Back then, I was in the SQL bubble and missed #MongoDB’s early days, so I revisited its early web pages on the Internet Archive to understand its origins better: dev.to/franckpachot...
20 years! Congrats on all you've done to provide clear educational content for Oracle users. Its quality, with short info and easy demos, renders LLMs unnecessary. A search engine that directs to the page is enough: there's no need to summarize, merge, or clarify — everything already done
Beyond Documents, Beyond Tables: SCDV™ – The Single-Cluster-Duality-View Revolution
💡 What if your architecture could add enough layers to normalize and denormalize at the same time? Discover this revolutionary design pattern.
dev.to/franckpachot...
Read consistency in @MongoDB
🍃 Transaction-level consistency is ACID compliant
🍃 Statement-level consistency is achieved with the `snapshot` read concern
🍃 Document-level consistency is the default outside of an explicit transaction
dev.to/franckpachot...
I'm a big fan of ANSI joins, but always keep in mind that if something doesn't work as expected, it can be a good idea to switch to the pre-9i syntax - just in case 🤓
dev.to/franckpachot...
It's consistent between the two writes, yes, because they update different values. But consistency between read and write: the +42 is should happen only if actual values are 1000 and 100. Then only one can happen.
Guess why 🙂
💡 Hint: there's a reason why @Hibernate doesn't do dynamic update by default (it would have prevented the anomaly here)
Some fun with SQL consistency boundaries🤓
Two users received the same instruction:
Add $42 to the salary or commission (choose one) for employee 99, who currently has a salary of $1000 and a commission of $100.
Same tables, same rows.
Only one should be able to update, right?
💡 When migrating from one platform to another, don’t just mimic what you had before. Revisit the requirements 🔦
www.linkedin.com/posts/franck...
I'm so used to starting software from Docker images that I didn't realize before that MongoDB database server is a single executable 😍 You start it (`mongod`), and it's a single process running threads to persist, process, and share your application data.
SQL databases rely on relational algebra and normal forms. Document databases use comparable math, just starting from non-1NF instead of 1NF:
dev.to/franckpachot...
Encore une double-session au Ch'ti JUG ! Cette fois c'est MongoDB, avec @franckpachot.bsky.social, et hébergé chez Ippon ! On s'inscrit ici : www.meetup.com/chtijug/even...
🌱 TL;DR: it's the same. Choose the consistency boundaries based on your application, not myths or guesses.
You need to insert 1,000 documents into @MongoDB. You can either call insertMany() with the default session, which provides per-document ACID guarantees, or run it in a transaction so the entire batch is all-or-nothing. Which approach is faster?
dev.to/franckpachot...
🍕 How do you prefer your pizza? Do you like your ingredients separated with references, or all together? www.youtube.com/watch?v=TKlS...
Le mois prochain à Lille
A sort order for boolean feels so weird
Because a cost-based optimizer needs accurate statistics, run ANALYZE on PostgreSQL partitioned tables to gather them, since auto-analyze only processes partitions. dev.to/aws-heroes/p...
I updated my SQL Assertion article with some maths and added the ALL ... SATISFY syntax that avoids double NOT EXISTS in Oracle Database SQL Assertions dev.to/franckpachot...
Relational algebra provides a logical model for reasoning about data independently of the domain, while document databases model data as applications do. A new blog to compare the relational selection (σ) on 1NF with its MongoDB equivalent: dev.to/franckpachot...
Trying a new format - short videos for beginners. That's the first one, all feedback welcome
youtu.be/qJUe1WxsTDk?...
A 3-step query tuning for MongoDB simple queries:
Step ⓵: Data Modeling
Step ⓶: Indexing for filters and order
Step ⓷: Covering projection
In databases, the Cartesian product is used to generate all combinations. In MongoDB, you can get it either at read time using multiple queries or a $lookup aggregation stage, or at write time through embedding, if it makes sense within your domain. dev.to/franckpachot...
Any UML tool that draw class diagrams (30 years ago I've find it more convenient than traditional craw foot diagrams, and easier to discuss with developers). Bonus if it has a xml/json that is git friendly