10
Сравнительный обзор СУБД Рябенко Сергей http://nord.pp.ua/ [email protected]

Сравнение систем СУБД

Embed Size (px)

Citation preview

Page 1: Сравнение систем СУБД

Сравнительный обзор СУБД

Рябенко Сергейhttp://nord.pp.ua/

[email protected]

Page 2: Сравнение систем СУБД

Зачем нужны базы данных?

● Хранить данные● Искать данные

Page 3: Сравнение систем СУБД

Типы баз данных

● РеляционныеMySQL, PgSql, SQL Server, SQLite

● Документно-ориентированныеMongoDB, CouchDB, Cassandra

● Ключ-значениеRedis, Tarantul

Page 4: Сравнение систем СУБД

Реляционные БД

Page 5: Сравнение систем СУБД

Реляционные БД

● 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;

Page 6: Сравнение систем СУБД

Документно-ориентированные БД

Структуры данных нет. Данные хранятся в виде документов.Документ это некоторый набор данных:db.students.find(){ surname: “Иванов”, name: “Иван” }

Документы могут содержать другие документы:db.facultets.find(){ name: “Физический”, students: [ { surname: “Иванов”, name: “Иван”}, { surname: “Петров”, name: “Петр”}]}

Page 7: Сравнение систем СУБД

Документно-ориентированные БД

Вставка данных:db.students.insert({name: “Иван”, surname: “Иванов”});

Поиск данных:db.students.find({name: “Иван”});

Page 8: Сравнение систем СУБД

Ключ-значение

Можем сохранять и получать данные только по определенному ключу.

SET ivan.ivanov “Иван Иванович Иванов”

GET ivan.ivanov

Page 9: Сравнение систем СУБД

Документ 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,);

Page 10: Сравнение систем СУБД

Какую базу выбрать?