Upload
sergey-ryabenko
View
766
Download
4
Embed Size (px)
Citation preview
Сравнительный обзор СУБД
Рябенко Сергейhttp://nord.pp.ua/
Зачем нужны базы данных?
● Хранить данные● Искать данные
Типы баз данных
● РеляционныеMySQL, PgSql, SQL Server, SQLite
● Документно-ориентированныеMongoDB, CouchDB, Cassandra
● Ключ-значениеRedis, Tarantul
Реляционные БД
Реляционные БД
● SQL - язык запросов-- Вставка данныхINSERT INTO `students` (surname, name, middlename, kurs, facultet_id) VALUES (“Гусаров”, “Андрей”, “Андреевич”, 1, 2);
--Получение данныхSELECT- * FROM `students` WHERE facultet_id = 2 AND kurs = 1;
--Поучениче днные из нескольких таблицSELECT s.*, f.name FROM `students` AS s LEFT JOIN `facultets` AS ON s.facultet_id = f.id WHERE facultet_id = 2 AND kurs = 1;
Документно-ориентированные БД
Структуры данных нет. Данные хранятся в виде документов.Документ это некоторый набор данных:db.students.find(){ surname: “Иванов”, name: “Иван” }
Документы могут содержать другие документы:db.facultets.find(){ name: “Физический”, students: [ { surname: “Иванов”, name: “Иван”}, { surname: “Петров”, name: “Петр”}]}
Документно-ориентированные БД
Вставка данных:db.students.insert({name: “Иван”, surname: “Иванов”});
Поиск данных:db.students.find({name: “Иван”});
Ключ-значение
Можем сохранять и получать данные только по определенному ключу.
SET ivan.ivanov “Иван Иванович Иванов”
GET ivan.ivanov
Документ vs. Таблицыcreate table t_recipe ( _id integer primary key autoincrement, name text, time_min int, time_max int, rating int, rating_my int, last_menu_date int,);create table t_recipe_category_m2m ( recipe_id int, category_id int);create table t_recipe_stage ( _id integer primary key autoincrement, recipe_id int, name text, description text,);create table t_recipe_ingredient_group ( _id integer primary key autoincrement, recipe_id int, name text);create table t_recipe_ingredient ( _id integer primary key autoincrement, group_id int, name text, amount text,);create table t_recipe_menu ( _id integer primary key autoincrement, recipe_id int, date int, time int, comment text,);
Какую базу выбрать?