Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Factors.

Slides:



Advertisements
Similar presentations
No SQL is not about SQL No SQL is a Zoo.. Key-Value Stores Wide Column Stores Document Stores Graph Databases.
Advertisements

CS 540 Database Management Systems
A Survey of Distributed Database Management Systems Brady Kyle CSC
Overview on ZHT 1.  General terms  Overview to NoSQL dabases and key-value stores  Introduction to ZHT  CS554 projects 2.
SOFTWARE PRESENTATION ODMS (OPEN SOURCE DOCUMENT MANAGEMENT SYSTEM)
Introduction to Backend James Kahng. Install Node.js.
NoSQL and NewSQL Justin DeBrabant CIS Advanced Systems - Fall 2013.
CS 405G: Introduction to Database Systems 24 NoSQL Reuse some slides of Jennifer Widom Chen Qian University of Kentucky.
Triple Stores.
IT – DBMS Concepts Relational Database Theory.
Module 1: Introduction to Microsoft SQL Server 7.0.
AN INTRODUCTION TO NOSQL DATABASES Karol Rástočný, Eduard Kuric.
SQL vs NOSQL Discussion
:: Conférence :: NoSQL / Scalabilite Etat de l’art Samuel BERTHE10 Mars 2014Epitech Nantes.
HBase A column-centered database 1. Overview An Apache project Influenced by Google’s BigTable Built on Hadoop ▫A distributed file system ▫Supports Map-Reduce.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Data-Parallel.
Getting Biologists off ACID Ryan Verdon 3/13/12. Outline Thesis Idea Specific database Effects of losing ACID What is a NoSQL database Types of NoSQL.
WTT Workshop de Tendências Tecnológicas 2014
Goodbye rows and tables, hello documents and collections.
Modern Databases NoSQL and NewSQL Willem Visser RW334.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Design.
Changwon Nati Univ. ISIE 2001 CSCI5708 NoSQL looks to become the database of the Internet By Lawrence Latif Wed Dec Nhu Nguyen and Phai Hoang CSCI.
NoSQL Databases Oracle - Berkeley DB Rasanjalee DM Smriti J CSC 8711 Instructor: Dr. Raj Sunderraman.
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
© Copyright 2013 STI INNSBRUCK
 70s - Database access is hard and depends on the app  80s – Relational databases come on the scene  90s – Object oriented programming and DBs  00s.
Need of migrating to embedded database by ISVs & corporate IT departments. By Pallavi Patel.
SLIDE 1IS 257 – Fall 2014 NewSQL and VoltDB University of California, Berkeley School of Information IS 257: Database Management.
CIS/SUSL1 Fundamentals of DBMS S.V. Priyan Head/Department of Computing & Information Systems.
CS453: Databases and State in Web Applications (Part 2) Prof. Tom Horton.
Lundi 7 décembre 2015 Lavoisier. Motivations data sources provided by many partners –heterogeneity of used technologies objectives –reduce complexity.
Lecture 8: Databases and Data Infrastructure CS 6071 Big Data Engineering, Architecture, and Security Fall 2015, Dr. Rozier.
NOSQL Implementation and examples Maciej Matuszewski.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de A.
Triple Stores. What is a triple store? A specialized database for RDF triples Can ingest RDF in a variety of formats Supports a query language – SPARQL.
NoSQL Or Peles. What is NoSQL A collection of various technologies meant to work around RDBMS limitations (mostly performance) Not much of a definition...
Mining real world data RDBMS and SQL. Index RDBMS introduction SQL (Structured Query language)
NoSQL Systems Motivation. NoSQL: The Name  “SQL” = Traditional relational DBMS  Recognition over past decade or so: Not every data management/analysis.
NOSQL DATABASE Not Only SQL DATABASE
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT IT Monitoring WG Technology for Storage/Analysis 28 November 2011.
MySQL Overview Jed Reynolds Write Your Questions on the Board! Landscape, Engines, HA, Performance Questions.
NoSQL: Graph Databases. Databases Why NoSQL Databases?
Introduction to MongoDB. Database compared.
Data and Information Systems Laboratory University of Illinois Urbana-Champaign Data Mining Meeting Mar, From SQL to NoSQL Xiao Yu Mar 2012.
NoSQL databases A brief introduction NoSQL databases1.
Big Data Yuan Xue CS 292 Special topics on.
Introduction to Core Database Concepts Getting started with Databases and Structure Query Language (SQL)
CMPE 226 Database Systems May 3 Class Meeting Department of Computer Engineering San Jose State University Spring 2016 Instructor: Ron Mak
Context Aware RBAC Model For Wearable Devices And NoSQL Databases Amit Bansal Siddharth Pathak Vijendra Rana Vishal Shah Guided By: Dr. Csilla Farkas Associate.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Factors.
Dive into NoSQL with Azure Niels Naglé Hylke Peek.
Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Design.
Neo4j: GRAPH DATABASE 27 March, 2017
CS 405G: Introduction to Database Systems
NoSQL: Graph Databases
and Big Data Storage Systems
Redis:~ Author Anil Sharma Data Structure server.
CS122B: Projects in Databases and Web Applications Winter 2017
MongoDB Er. Shiva K. Shrestha ME Computer, NCIT
Modern Databases NoSQL and NewSQL
Dineesha Suraweera.
David Ostrovsky | Couchbase
Storage Systems for Managing Voluminous Data
1 Demand of your DB is changing Presented By: Ashwani Kumar
SQL - כתיבת שאילתות למתחילים
Teaching slides Chapter 8.
Non-traditional Databases
Introduction to NoSQL Database Systems
NoSQL databases An introduction and comparison between Mongodb and Mysql document store.
Working with GEOLocation Data
Presentation transcript:

Software Engineering for Business Information Systems (sebis) Department of Informatics Technische Universität München, Germany wwwmatthes.in.tum.de Factors influencing the database selection for B2C web applications. Master Thesis Kick-Off Presentation Al-Saeedi, Bilal |

Agenda Introduction Motivation ? Research questions ? 1 © sebis Matthes Slides sebis Road Plan Progress ? Future plan ? 3 Research Approach Research plan ? Present what has been done ? 2

Introduction – Motivation © sebis Matthes Slides sebis NOSQL DatabasesRelational DBMS

Introduction – Research Questions © sebis Matthes Slides sebis What are the influencing factors for the selection of a database for a B2C application ? What are the challenges in terms of query expressiveness and complexity of the database ? What are the benefits and shortcomings of the database in terms of B2C application scenarios ?

Research Approach © sebis Matthes Slides sebis DB selectionConstructs identificationUse cases identificationLiterature reviewUse cases implementationResults documentation

Databases Selection © sebis Matthes Slides sebis Community Strength MaturityPopularity Availability Scalability Open Source Support Reliability

Databases Selection © sebis Matthes Slides sebis Database Categories Key-Value Document Based Column Based Graph Full Text Search Engines RDBMS MySQL Postgres Oracle …..... Redis Riak Memcached …..... MongoDB Couchbase Cloudant …..... Cassandra HBase Accumulo …..... Neo4j Titan OrientDB …..... Elasticsearch Apache Solr BaseX ….....

Constructs © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query Language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Any Database Specific Features Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

B2C Use Cases © sebis Matthes Slides sebis Redis Session Management. Cart Management. Cache Service. Login, Cart, and Products Analytics Service. MongoDB Users Management. Shipping Management Product Review & Wish list Management History Data. Product & Category Management. Cassandra Analytics Service Logging Service Neo4j Recommendations System. ElasticSearch Product Search. MySQL Finance (orders & payments) Inventory Management.

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query Language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Redis – Basic Concepts © sebis Matthes Slides sebis

Redis – Transaction Support © sebis Matthes Slides sebis Watch/UnwatchMulti/Exec Discard

Redis – Relational Data Support © sebis Matthes Slides sebis (Hash) Customer (Hash) Order (Hash) Shipping (Hash) Payment 1* * * 1* Set (orderIDs) Orders:customerID Set (orderIDs) Orders:paymentID Set (orderIDs) Orders:shippingID Set (shippingIDs) Shippings:orderID

Redis – Relational Data Support © sebis Matthes Slides sebis Submit an order Get all customer Shippings

Redis – Indexing © sebis Matthes Slides sebis Primary IndexKey Hash { “SKU”: “sku”, “Name”:”ProductName”, “Color”: “ProductColor”, “Price”: “ProductPrice” } Products:ProductID  Primary Index Set {ProductIDs} Product.Color.Index: ProductColor Sorted Set {ProductIDs, Price} Product.Price.Index Secondary Index Composite Index Sorted Set {CategoryID:Price:ProductID, 0} Product.Category.Price.Index Retrieval

Redis – Filtering, Grouping and Sorting © sebis Matthes Slides sebis Group Data Set {ProductIDs} Product. Manufacture.Index: CompanyName Set {ProductIDs} Product.Color.Index: ProductColor Filter Data Sorting Data SORT command  sorts lists, sets, and sorted sets

Redis – Use Cases Implementations © sebis Matthes Slides sebis Cart Management Service Session Management Service Cache Service Analytics Service Other Redis Examples: Inspect Data Structures Job Queue. Handling Data Relation Pipeline Support Transaction Support

Road Plan © sebis Matthes Slides sebis Today CompleteCompleteOngoingOngoing Not Started EndStart RevisingRevising

Technische Universität München Department of Informatics Chair of Software Engineering for Business Information Systems Boltzmannstraße Garching bei München wwwmatthes.in.tum.de Bilal Al-Saeedi Thank you for your attention! MSc. Informatics Student

Backup slides © sebis Matthes Slides sebis

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query Language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Databases Selection – Key-Value © sebis Matthes Slides sebis Built-in persistence support. Vey fast in-memory database Variety of storage data types. Open source

Databases Selection – Document-Based © sebis Matthes Slides sebis JSON-like storage format named BSON Great features such as ad hoc queries, Indexing, sharding, etc. Easy to use and has great community Open source

Databases Selection – Column-Based © sebis Matthes Slides sebis Open source SQL-Like Query language called CQL Decentralized, no single point of failure Great community

Databases Selection - Graph © sebis Matthes Slides sebis Supports a powerful and easy to use graph query language called Cypher. Support complex data modeling. Open source Great community

Databases Selection – Full Search Engine © sebis Matthes Slides sebis Scalable Map/Reduce model Memory efficient and fast. Open source Great community

Databases Selection - RDBMS © sebis Matthes Slides sebis Relational Database System Client/Server Architecture SQL compatibility Open source RDBMS Great community

Introduction – Research Questions © sebis Matthes Slides sebis System product quality model—ISO/IEC9126.

Databases Selection © sebis Matthes Slides sebis Quadrant for Operational DBMS

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query Language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Constructs – Redis © sebis Matthes Slides sebis Introduction Installability Basic Concepts Possible Use cases Basic Features Query language Transaction Support Pipeline Support Data Modeling Data Layout Relational Data Support Referential Integrity NormalizationData Evolution Nested Data Support Searching Data Full Text Search Support Regular Expressions Support Query OptionsIndexingQueries Filtering and Grouping data Sorting Special Features Pub/Sub Support Expire Configuring as a cache Lua Scripting Administration and Maintenance ConfigurationScalability Persistence, and ACID Support Handling failure Backup and Upgrade SecurityAvailabilityData migration

Redis – Relational Data Support © sebis Matthes Slides sebis Difference Union Join

Redis – Configuration & Persistence © sebis Matthes Slides sebis Can be started without configuration file. Redis configuration is in redis.confi, format confugirationKeyWord argument1 argument2... argumentN Configured also using command line./redis-server --port slaveof Configuration on the fly without restarts CONFIG SET SAVE " " Configuration Persistence Snapshotting or RDB Persistence Periodically and with condition save / BGSAVE Append-Only File or AOF Persistence appendonly yes / BGREWRITEAOF fsync every, fsync every second, Never fsync  fsync every for full durability

Redis – Expire © sebis Matthes Slides sebis Expire SetEx

Redis – Configuration © sebis Matthes Slides sebis Can be started without configuration file. Redis configuration is in redis.confi, format confugirationKeyWord argument1 argument2... argumentN Configured also using command line./redis-server --port slaveof Configuration on the fly without restarts CONFIG SET SAVE " "

Redis – Indexing © sebis Matthes Slides sebis Primary IndexKey Hash { “SKU”: “sku”, “Name”:”ProductName”, “Color”: “ProductColor”, “Price”: “ProductPrice” } Products:ProductID  Primary Index Set {ProductIDs} Product.Color.Index: ProductColor Sorted Set {ProductIDs, Price} Product.Price.Index Secondary Index Composite Index Sorted Set {CategoryID:Price:ProductID, 0} Product.Category.Price.Index Retrieval