A Guide to Modern Databases and the NoSQL Movement
Luc Perkins, Eric Redmond, Jim R. Wilson

#Database
#NoSQL
#DynamoDB
#MongoDB
#Redis
#Neo4J
#CouchDB
#data_scientist
🗄️هفت دیتابیس در هفت هفته—سفری در دنیای پایگاهدادههای مدرن
📊 دادهها روز به روز بزرگتر و پیچیدهتر میشن، و انتخابهات برای مدیریتشون هم همینطور. با برخی از پیشرفتهترین پایگاهدادههای موجود آشنا شو—از دیتابیسهای رابطهای سنتی تا رویکردهای جدیدتر NoSQL—و درباره مشکلات چالشبرانگیز ذخیرهسازی داده تصمیمگیری آگاهانه داشته باش. این تنها راهنمای جامع دنیای پایگاهدادههای NoSQLه، با معرفیهای عملی و مفهومی عمیق از هفت تکنولوژی مختلف: Redis، Neo4J، CouchDB، MongoDB، HBase، Postgres و DynamoDB. ویرایش دوم شامل یه فصل جدید درباره DynamoDB و محتوای بهروزشده برای هر فصله.
💾 در حالی که پایگاهدادههای رابطهای مثل MySQL همچنان به اندازه همیشه مرتبط هستن، پارادایم جایگزین NoSQL افقهای جدیدی رو در عملکرد و مقیاسپذیری باز کرده و نحوه رویکرد ما به مشکلات دادهمحور رو تغییر داده.
🎯 این کتاب مفاهیم اساسی پشت هر دیتابیس رو در کنار مثالهای عملی ارائه میده که هر تکنولوژی رو زنده میکنن.
⚡ با هر دیتابیس، یه مشکل دنیای واقعی رو حل میکنی که مفاهیم و ویژگیهایی که اون رو متمایز میکنه رو برجسته میکنه
📐 پنج مدل دیتابیس رو بررسی میکنی—رابطهای، کلید/مقدار، ستونی، سندی و گراف—از دیدگاه چالشهای برنامههای واقعی
🚀 یاد میگیری چطور MongoDB و CouchDB به شکل چشمگیری متفاوتن
⚡ برنامههات رو با Redis سریعتر و با Neo4J متصلتر میکنی
☁️ یه کلاستر از سرورهای HBase رو با استفاده از سرویسهای ابری مثل Amazon’s Elastic MapReduce میسازی
🆕 این ویرایش جدید یه فصل کاملاً جدید روی DynamoDB، نمونه کدهای بهروز شده و تمرینها، و گزارش بهروزتری از مجموعه ویژگیهای هر دیتابیس ارائه میده
💻 برنامهنویسی که داره چیز بزرگ بعدی رو میسازه
📈 دیتا ساینتیستی که به دنبال راهحل برای مشکلات پیچیدهست
🔬 علاقهمند به تکنولوژی که داره وارد قلمرو جدیدی میشه
در این کتاب چیزی پیدا میکنی که الهامبخشت باشه!
۱. مقدمه 🎯
۲. PostgreSQL 🐘
۳. HBase 🏔️
۴. MongoDB 🍃
۵. CouchDB 🛋️
۶. Neo4J 🕸️
۷. DynamoDB ⚡
۸. Redis 🔴
۹. جمعبندی 🎁
A1. جداول نمای کلی دیتابیسها
A2. قضیه CAP
پنج سال پیش با فضای NoSQL آشنا شدم، وقتی نقش نویسنده فنی رو در Basho Technologies گرفتم. از همون اول این حوزه رو بینهایت جذاب دیدم—پر از وعده و تکنولوژی الهامبخش، ولی پیچیدگیهای خودش رو داشت.
دیتابیسهای رابطهای جالبن، ولی از نظر ساختاری شبیه همن. دیتابیسهای NoSQL اما خیلی بیشتر فردیت دارن. هرکدوم نقاط قوت و ضعف و ویژگیهای خاص خودش رو داره و یه سری معاوضه ارائه میده که احتمالاً توی دیتابیس دیگهای ندیدی.
بهروز نگه داشتن کتاب! یه تن چیز از ویرایش اول تغییر کرده. فضای NoSQL به شدت سریع حرکت میکنه و دنبال کردن یه دیتابیس به اندازه کافی سخته، چه برسه به هفتا!
این یعنی من باید هر تیکه کد، دستور CLI، ادعا و دیاگرام توی کتاب رو چک میکردم که هنوز کار میکنه و اطلاعات دقیق ارائه میده. بعد باید مطمئن میشدم ویژگیهای جدیدتر وقت لازمه ذکر یا نمایش داده میشن.
✅ اول و مهمترین: همه چیز الان کار میکنه! همه ما به bit rot توی کد عادت داریم، ولی این اتفاق توی کتابها هم میافته.
🔄 تغییرات خاص:
وای، خیلی سخته! برای هرکدوم یه جای ویژه توی قلبم دارم. ولی اگه مجبور باشم انتخاب کنم، میگم Redis. سطح تماس نسبتاً کوچیکی برای یه سیستم پرکاربرد داره و دامنه مشکلاتی که میخواد حلشون کنه خیلی خوب تعریف شده.
🐢 آروم و یواش پیش برو. محتوا به خاطر یه دلیلی روی «روزها» پخش شده. لازم نیست دقیقاً الگوی ما رو دنبال کنی، ولی این مطالب برای یه نشست نیستن.
🧠 وقت بذار دیاگرامها و تعاریف فنی رو واقعاً جذب کنی. سعی کن «جهانبینی» هر دیتابیس رو درک کنی. تصور کن چه مواقعی هر دیتابیس ضروری میشه.
⏭️ اگه با یه دیتابیس جور درنمیای، برو سراغ بعدی و بعداً برگرد. شاید با دید تازه و سؤالات جدید برگردی.
مهندس موفقیت مشتری در Reflect Technologies، یه استارتاپ گزارشدهی و بصریسازی داده در پورتلند. قبلاً به عنوان نویسنده فنی برای شرکتهایی مثل Twitter و Basho کار کرده و فعالانه توی جامعه Write the Docs حضور داره.
بیش از ۲۰ سال توی صنعت نرمافزار کار کرده، با شرکتهای Fortune 500، دولتها و استارتاپهای زیاد. کدنویس، طراح، سخنران بینالمللی و سازماندهنده فعال چندین گروه تکنولوژی.
مهندس نرمافزار در گوگل که بصریسازی دادهها رو توی تیم Big Picture میسازه. به TensorBoard و پروژههای اپنسورس دیگه کمک کرده.
Data is getting bigger and more complex by the day, and so are your choices in handling it. Explore some of the most cutting-edge databases available - from a traditional relational database to newer NoSQL approaches - and make informed decisions about challenging data storage problems. This is the only comprehensive guide to the world of NoSQL databases, with in-depth practical and conceptual introductions to seven different technologies: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB. This second edition includes a new chapter on DynamoDB and updated content for each chapter.
While relational databases such as MySQL remain as relevant as ever, the alternative, NoSQL paradigm has opened up new horizons in performance and scalability and changed the way we approach data-centric problems. This book presents the essential concepts behind each database alongside hands-on examples that make each technology come alive.
With each database, tackle a real-world problem that highlights the concepts and features that make it shine. Along the way, explore five database models - relational, key/value, columnar, document, and graph - from the perspective of challenges faced by real applications. Learn how MongoDB and CouchDB are strikingly different, make your applications faster with Redis and more connected with Neo4J, build a cluster of HBase servers using cloud services such as Amazon's Elastic MapReduce, and more. This new edition brings a brand new chapter on DynamoDB, updated code samples and exercises, and a more up-to-date account of each database's feature set.
Whether you're a programmer building the next big thing, a data scientist seeking solutions to thorny problems, or a technology enthusiast venturing into new territory, you will find something to inspire you in this book.
What You Need:
You'll need a *nix shell (Mac OS or Linux preferred, Windows users will need Cygwin), Java 6 (or greater), and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.
Table of Contents
1. Introduction
2. PostgreSQL
3. HBase
4. MongoDB
5. CouchDB
6. Neo4J
7. DynamoDB
8. Redis
9. Wrapping Up
A1. Database Overview Tables
A2. The CAP Theorem
Well, I began becoming intimately acquainted with the NoSQL space about five years ago, when I took on the role of technical writer at Basho Technologies, the company behind NoSQL database Riak. From the very beginning I found the space endlessly interesting, so full of promise and inspiring technology yet also very tricky to navigate.
Relational databases are quite interesting to me as well, but they tend to be very structurally similar. NoSQL databases on the other hand, tend to be much more individualistic, you could say. Each has its own special strengths and weakness and quirks and presents you with a set of trade-offs you’ve probably never encountered in another database. So the book was an opportunity to take my more localized knowledge of the space and really stretch my knowledge and my thinking outward.
In general, I’d say making the book up to date. Unsurprisingly, a ton has changed since the original edition. The NoSQL space is notoriously fast moving and it’s hard enough to keep up with one database, let alone seven. That means that I had to check every single code snippet and CLI command and claim and diagram in the book to make sure that it still worked, presented accurate information, etc. Then I had to make sure that newer features are mentioned or showcased when necessary. For a book that’s really seven books in one, this was quite a task, though an extremely rewarding one.
First, and most importantly, everything in the book works now. We’re all used to bit rot in code but it happens in books, too. Database systems change a lot over time. Many of the CLI commands and code snippets from the first edition eventually started throwing cryptic errors or flat-out not working at all.
But there are some other, more specific changes. The chapter on Riak was removed and replaced with a chapter on Amazon’s DynamoDB. Riak is a fascinating database but its future is very uncertain. DynamoDB is also a fascinating database but it feels like a living, breathing project. Furthermore, the querying language for Neo4j was updated to Cypher (instead of the original and now largely defunct Gremlin).
Oh gosh, that’s very tricky, because I have a special fondness and a place in my heart reserved for each of them. But if I had to pick I’d say Redis. It has a pretty small surface area for such a widely used system and a very well-defined domain of problems that it seeks to address. If I had to build a new application that used all seven databases in the book, the Redis portion of the application would be the one I’d be most eager to work on.
I’d say take it nice and slow. The content is spread across 'days' for a reason. You don’t have to follow the schema we present, of course, but this is not single-sitting material. Take a minute to really absorb the diagrams and technical definitions. Try to understand each database’s 'worldview,' so to speak, and use that as a thinking cap for each chapter’s material. Try to imagine times when each database would be indispensable. And if you and a database just aren’t getting along, skip to the next one and come back later. You may come back with fresh insight and a new slate of questions.
Luc Perkins is a customer success engineer at Reflect Technologies, a data reporting and visualization startup in Portland, OR. In the past, he has worked as a technical writer for companies such as Twitter and Basho, and is actively involved in the Write the Docs community of technical writers.
Eric Redmond has been in the software industry for more than 20 years, working with Fortune 500 companies, governments, and many startups. He is a coder, illustrator, international speaker, and active organizer of several technology groups.
Jim R. Wilson is a software engineer at Google creating data visualizations on the Big Picture team. He's contributed to TensorFlow's visualization suite, TensorBoard, and other open source projects.





