Monday, March 26, 2012
Thursday, March 22, 2012
Няколко истини за MongoDB
През последната година MongoDB става все по-популярна база данни и колегите започва да я използват все повече. Факт е, че има сериозни преимущества пред релационните си събратя.
Заедно с добре подготвените и компетентни презентации и документации започнаха да се появяват и много подвеждащи такива. Което е в реда на нещата – нещо става модерно и веднага се появяват купчина специалисти, които дори не са си направили труда да прочетат документацията (а тя е доста интересна и полезна).
От Screen-а в ляво можете да видите нещо доста интересно “Cons: no atomic operations, no validation”. След което хвърлете око на този документ.
MongoDB притежава едни от най-мощните и оптимизирани atomic операции!
Явно от SoftAcad са пропуснали, че в MongoDB е НЕ релационна база данни (което включва и липсата на релация между самите документ в една колекция) – много ме озадачава, че едно от основните преимущества на MongoDB е в графата “Const”!
От презентацията личи си, че младежите от SoftAcad са хора с опит в релационни бази данни, но без опит с не релационните - направили са си труда да направят презентация и да правят обучения, за които взимат пари, но за съжаление не са си направили труда да прочетат документацията.
Презентация е пълна с неточности, които могат да объркат представите на хората за MongoDB и като цяло за noSQL.
От презентацията става ясно, че “mongodb няма никакви сторед процедури”, е тукедин линк е повече от достатъчен.
Мразя да хейтвам, но не понасям такива некадърни неща!
Бази данни – играта се променя
Релационните бази данни, бавно но сигурно излизат от въоръжение. Това, което знаете за нормални форми, SQL, Object/Relational Mapping… се оказва далеч от оптималното.
Какво не е наред с релационните бази данни?
Те не се справят добре с големи обеми данни.
Когато обемът данни в таблиците нарастне на милиони, изпълнението на SQL заявките се забявя. Виждал съм промяна на колона в база данни, която отнема 12-часа. Не е задължително да сте в голяма фирма, за да имате такъв обем записи.
Когато обемът данни в таблиците нарастне на милиони, изпълнението на SQL заявките се забявя. Виждал съм промяна на колона в база данни, която отнема 12-часа. Не е задължително да сте в голяма фирма, за да имате такъв обем записи.
Неудобен език за заявки.
SQL – езикът за заявки към базите данни и бил създаден за счетоводители, които пишат заявки на команден ред. По дизайн той не е предвиден да се използва от софтуер. Твърде лесно е да получите декартово произведение на резултатите. Трябва на внимавате къде ползвате агрегираща функция, в каква последователност използвате sort, group by, having. За извличането на единствен обект може да имате осем join оператора. За изтриване на обект пък трябва да съобразявате в какви таблици е разпределен и да го изтривате на парчета (като пазите парчетата, които може да се използват от други обекти).
SQL – езикът за заявки към базите данни и бил създаден за счетоводители, които пишат заявки на команден ред. По дизайн той не е предвиден да се използва от софтуер. Твърде лесно е да получите декартово произведение на резултатите. Трябва на внимавате къде ползвате агрегираща функция, в каква последователност използвате sort, group by, having. За извличането на единствен обект може да имате осем join оператора. За изтриване на обект пък трябва да съобразявате в какви таблици е разпределен и да го изтривате на парчета (като пазите парчетата, които може да се използват от други обекти).
Неспазване на стандарт.
За 10 години производителите на бази данни не можаха да стигнат до унификация по базовите въпроси:
За 10 години производителите на бази данни не можаха да стигнат до унификация по базовите въпроси:
- различни типове данни (nvarchar)
- различно генериране на последователни идентификатори (auto_increment)
- различно странициране на резултатите (offset).
- различно интерпретиране на празно поле (null).
Табличен модел.
В базите данни се съхраняват програмни обекти. Те обаче трябва да се разложат до SQL стринг, който да се интерпретира от базата данни и да разпредели обекта на парчета в различни таблици. При четене се извършва обратния процес.
В базите данни се съхраняват програмни обекти. Те обаче трябва да се разложат до SQL стринг, който да се интерпретира от базата данни и да разпредели обекта на парчета в различни таблици. При четене се извършва обратния процес.
Това не значи, че релационните бази данни са нещо лошо – просто се оказва, че има по-добър начин.
Новите бази данни
Новото поколение бази данни вече не са релационни, работят без SQL и скалират лесно. 
Наричат ги NoSQL бази данни. Известно е, че могат да обработят 50 TB записи (Facebook). Тези бази данни използват JSON вместо SQL. Таблиците са заменени от колекции, които могат да се оприличат на Map обекти (ключ-стойност).
Наричат ги NoSQL бази данни. Известно е, че могат да обработят 50 TB записи (Facebook). Тези бази данни използват JSON вместо SQL. Таблиците са заменени от колекции, които могат да се оприличат на Map обекти (ключ-стойност).
Какви са недостатъците на NoSQL базите данни? Инструментите за генериране на отчети и за управление на бази данни, са направени за релационни бази. Без специален SQL-емулатор те няма да работят с NoSQL база. Транзакциите се поддържат само до някъде. Не сте сигурни, точно в кой момент документът ви е записан.
NoSQL базите данни все още не са преобладаващ вид, но вече няма съмнение, че ще бъдат основния играч. Вижте кой са фирмите зад тях:
- BigTable (Google).
- Cassandra (Facebook).
- SimpleDB (Amazon).
- MongoDB (Twitter, SourceForge). Моят фаворит
- Sherpa (Yahoo).
- HBase (Adobe).
Големите играчи очевидно залагат на NoSQL… а те имат достатъчно ресурси и влияние върху развитието на индустрията. Очаквам след 5 години, когато започва нов софтуерен проект първият избор на архитектите да бъде MongoDB, а не MySQL.
Ами обектните бази данни?
За софтуер, който не работи с големи масиви данни, обектните бази са съвършеното решение. Те позволяват на програмиста да запише/прочете произволен обект или верига от обекти, без да се занимава изобщо с таблици, мапинги, анотации и прочие. Така се елиминират цели слоеве от приложението (mapping, dao, SQL), което е голямо улеснение и спестява много програмистки грешки.
Например – db4o е обектна база данни, която е безплатна за проекти с отворен код и работата с нея е над 7 пъти по-бърза от тази през Hibernate + HSQLDB (която от своя страна е по-бърза от MySQL). Недостатъците на тази база, са че не поддържа auto_increment функционалност и не е ясно колко струва лицензът за комерсиалната й употреба.
Защо обектните бази не са толкова популярни? Мисля, че фирмите които стоят зад тях не направиха достатъчно за популяризирането им. Също така, обектната база е обвързана с конкретен език за програмиране и не е тривиално да прочетете съдържанието й с програма писана на друг език.
В резюме
Релационните бази данни ще отстъпят място на по-добра технология – NoSQL. Ако стартирате нов проект си струва да помислите за това.
Повече от 100 курсиста защитиха успешно проектите си в Академията на Телерик
Повече от 100 курсиста защитиха успешно проектите си в Академията на Телерик
От: Ina Dobrilova | 07 март 2012
Завършиха два от най-посещаваните до момента курсове в Академията на Телерик: Разработка на мобилни приложения и Уеб приложения с ASP.NET MVC. Повече от 1000 човека проявиха интерес към обученията, които се водеха всяка седмица в учебната зала на Академията на Телерик в рамките на пет последователни месеца.
Разработка на мобилни приложения
Курсът "Разработка на мобилни приложения" обхвана в дълбочина платформата с отворен код за разработка на мобилни приложения – PhoneGap. Курсистите придобиха необходимите знания по HTML 5, CSS 3 и jQuery Mobile, за да могат самостоятелно да създадат мобилни приложения за различните операционни системи Android, iOS, Blackberry, WebOS, Symbian. Обучението беше съчетано със серия от практически занятия, по време на които се демонстрира как да разработите игра или създадете блог система, използвайки PhoneGap.
В края на курса студентите получиха проект за разработка на мобилно приложение. Двата варианта за проекти включваха, приложение за откриване на твоите приятели, които се намират в близост до теб и криптиран чат, наподобяващ функционалностите на Skype.
44 курсиста разработиха и защитиха отлични и много добри проекти и се наредиха на чело на класацията на завършилите обучението. Можете да разгледате списък с имената и резултатите на участниците в курса. (Моля имайте предвид, че има разминаване в резултатите, тъй като единият проект е по-труден, заради което точките са скалирани).
Subscribe to:
Comments (Atom)
-
Понякога се налага да представиш себе си с няколко думи или пък да кандидатстваш за работа където CV-то е задължително( мотивационно писмо ...
-
Sample project with WDK.API.CouchDb Здравейте приятели отново продължаваме с CouchDB само, че сега ще ви представя едно ново решение...
-
DevReach 2012 Привет миналата седмица спечелих от Телерик безплатен билет за DevReach 2012 Събитието се състоя в кино "Арена...