25. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
26. Disclaimer
Релационните бази работят, доказани са
и имат ред успешни приложения. Ако се
захващате с алтернативни сте в
експериментална територия и трябва да
сте готови да се оправяте сами.
Monday, November 22, 2010
27. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
28. Релационните
бази
са
сложни!DDL & DML
нормализация
индекси
inner/outer join
транзакции/изолация
6NF
денормализация
Monday, November 22, 2010
49. “Ray
and
I
thought
that
we
were
developing
a
language
that
would
be
used
mainly
by
‘casual
users’...”
Monday, November 22, 2010
50. “...we
were
trying
to
make
databases
accessible
to
a
new
class
of
users
who
were
not
trained
computer
scientists...”
Monday, November 22, 2010
51. “We
expected
to
see
SQL
used
directly
by
financial
analysts,
urban
planners,
and
other
professionals
who
needed
access
to
data
but
did
not
want
to
write
computer
programs”
Monday, November 22, 2010
52. “In
fact,
over
the
years
a
great
deal
of
SQL
code
has
been
generated
by
automatic
tools,
a
development
that
was
not
foreseen
in
the
early
days.”
Monday, November 22, 2010
60. Scientists have discovered
that 83% of all projects are better
of with MongoDB.True story.
Barney Stinson, Programmer
Monday, November 22, 2010
61. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
80. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
81. {
"title": "Haskell rocks",
"author": "skanev",
"text": "Today I played with...",
"tags": ["programming", "haskell"],
"views": 42
}
Примерен документ
Monday, November 22, 2010
82. > db.posts.insert({
"title": "Haskell rocks",
"author": "skanev",
"text": "Today I played with...",
"tags": ["programming", "haskell"],
"views": 42
})
Добавяне
глобална променлива в конзолата за текущата база
име на колекцията
команда
Monday, November 22, 2010
84. _id
• специален ключ,
• всеки документ го има
• уникален е в рамките на колекция
• какъвто и да е тип
Monday, November 22, 2010
85. > db.posts.update({title: "Haskell rocks"}, {
title: "Haskell is cool",
author: "skanev",
body: "Today I played with..."
})
Обновяване на документ
Monday, November 22, 2010
86. > db.posts.findOne()
{
"_id" : ObjectId("4ce653278f4f936035707875"),
"title" : "Haskell is cool",
"author" : "skanev",
"body" : "Today I played with..."
}
След записа
tags и views ги няма
Monday, November 22, 2010
89. Модификатори ($set)
• Не са имена на полета
• Значат нещо специално за Mongo
• Започват с $
• Prefix-а може да се промени при клиента
Monday, November 22, 2010
113. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
135. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010
136. три проблема, които не са
директно с производителност
Monday, November 22, 2010
143. 1. променяме кода да работи с двата
варианта
2. времеемка миграция, която не заключва
нищо
3. премахваме поддръжката за стария
вариант
Рецепта
Monday, November 22, 2010
154. “Ще
правим
магазин.
Искам
да
мога
да
добавям
нови
типове
продукти
и
да
променям
атрибутите
на
съществуващите,
както
и
да
има
търсене
по
тях”
Monday, November 22, 2010
160. 1. Проблеми на релационните бази от данни
2. MongoDB отдалеч
3. Работа с MongoDB
4. Предимства и недостатъци
5. Някои приложения
6. MongoDB в живия живот
Monday, November 22, 2010