Voyage. NoSQL Object Database. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W4S11

Size: px
Start display at page:

Download "Voyage. NoSQL Object Database. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W4S11"

Transcription

1 Voyage NoSQL Object Database Damien Cassou, Stéphane Ducasse and Luc Fabresse W4S11

2 W4S11 2 / 27 Goal To let you build a real little application Show you a nice way to store objects

3 W4S11 3 / 27 MongoDB Document oriented, open-source NoSQL database Powerful query language Most popular document database so far

4 W4S11 4 / 27 What is Voyage? Object-Document Mapper for MongoDB Think on Hibernate for MongoDB For Pharo, obviously ;)

5 W4S11 5 / 27 Voyage Feature Simple Ensure object identity Provide error-handling Implement a connection pool

6 Setting a Connexion W4S11 6 / 27 repository repository := VOMongoRepository host: 'localhost' database: 'demo'. repository enablesingleton.

7 W4S11 7 / 27 Setting a In Memory Connexion repository repository := VOMemoryRepository new. repository enablesingleton. Really nice to prototype Then can easily switch to a MongoDB

8 A Simple Model W4S11 8 / 27

9 A Simpler Model W4S11 9 / 27

10 A Simpler Model Object subclass: #Hero instancevariablenames: 'name level powers' classvariablenames: '' package: 'SuperHeroes' Hero >> name ^ name Hero >> name: astring name := astring Hero >> level ^ level Hero >> level: anobject level := anobject Hero >> powers ^ powers ifnil: [ powers := Set new ] Hero >> addpower: apower self powers add: apower W4S11 10 / 27

11 A Simpler Model W4S11 11 / 27 Object subclass: #Power instancevariablenames: 'name' classvariablenames: '' package: 'SuperHeroes'. Power>>name ^ name Power>>name: astring name := astring

12 W4S11 12 / 27 Root Classes Entry-point for our database Can be any class in the system Marked as root by isvoyageroot class method

13 Root Classes W4S11 13 / 27 Hero class >> isvoyageroot ^ true

14 Some Heroes W4S11 14 / 27 Hero new name: 'Spiderman'; level: #epic; addpower: (Power new name: 'Super strength'); addpower: (Power new name: 'Wall climbing'); addpower: (Power new name: 'Spider instinct'); save. Hero new name: 'Wolverine'; level: #epic; addpower: (Power new name: 'Regeneration'); addpower: (Power new name: 'Adamantium claws'); save.

15 In DB > db.hero.find()[0] { "_id" : ObjectId("d847065c56d0ad09b "), "#version" : , "#instanceof" : "Hero", "level" : "epic", "name" : "Spiderman", "powers" : [ { "#instanceof" : "Power", "name" : "Spider instinct" }, { "#instanceof" : "Power", "name" : "Super strength" }, { "#instanceof" : "Power", W4S11 15 / 27

16 Querying W4S11 16 / 27 Hero selectall. > an OrderedCollection(a Hero, a Hero) Hero selectone: [ :each each name = 'Spiderman' ]. > a Hero Hero selectmany: [ :each each level = #epic ]. > an OrderedCollection(a Hero, a Hero)

17 Querying 2 W4S11 17 / 27 Hero selectone: { #name > 'Spiderman' } asdictionary. > a Hero Hero selectmany: { #level > #epic } asdictionary. > an OrderedCollection(a Hero, a Hero)

18 Querying 3 W4S11 18 / 27 Hero selectmany: { #level > #epic } asdictionary sortby: { #name > VOOrder ascending } limit: 10 offset: 0. > an OrderedCollection(a Hero, a Hero)

19 Some Operations W4S11 19 / 27 Hero count. > 2 Hero count: [ :each each name = 'Spiderman' ] > 1. Hero removeall. "Beware of this!" > Hero class hero := Hero selectall anyone. hero remove. > a Hero

20 W4S11 20 / 27 Defining Document Roots If you want to query them If you want to share objects between roots

21 W4S11 21 / 27 Defining Document Roots Yes, Hero is a root on the example Power can be a root too (you can share powers between heroes) Any class can be declared as root, Voyage will manage it automatically

22 Defining Document Roots W4S11 22 / 27 Power class >> isvoyageroot ^ true Power new name: 'Fly'; save. Power new name: 'Super strength'; save. fly := Power selectone: [ :each each name = 'Fly']. superstrength := Power selectone: [ :each each name = 'Super strength']. Hero new name: 'Superman'; level: #epic; addpower: fly; addpower: superstrength; save.

23 Important W4S11 23 / 27 Reset repository when changing the schema VORepository current reset.

24 In DB > db.hero.find()[0] { "_id" : ObjectId("d aa909b "), "#version" : NumberLong(" "), "#instanceof" : "Hero", "level" : "epic", "name" : "Superman", "powers" : [ { "#collection" : "Power", "#instanceof" : "Power", " id" : ObjectId("d84745dd421aa909b ") }, { "#collection" : "Power", "#instanceof" : "Power", " id" : ObjectId("d84745dd421aa909b ") } W4S11 24 / 27

25 W4S11 25 / 27 Relationships Root references (kind of foreign keys ) Voyage handles cyclic references of root objects Beware, Voyage does not support cyclic references of embedded objects (yet)

26 W4S11 26 / 27 Conclusion We can easily save objects in MongoDB More information in Entreprise Pharo: a Web Perspective

27 A course by and in collaboration with Inria 2016 Except where otherwise noted, this work is licensed under CC BY-NC-ND 3.0 France

Voyage: Persisting Objects in Document Databases

Voyage: Persisting Objects in Document Databases Voyage: Persisting Objects in Document Databases Esteban Lorenzano, Stéphane Ducasse, Johan Fabry and Norbert Hartl May 14, 2017 master @ 5e82534 Copyright 2015 by Esteban Lorenzano, Stéphane Ducasse,

More information

Seaside: An Innovative Web Application Framework

Seaside: An Innovative Web Application Framework Seaside: An Innovative Web Application Framework Damien Cassou, Stéphane Ducasse and Luc Fabresse W4S08 http://www.pharo.org W4S08 2 / 24 Seaside A powerful, innovative and flexible framework Dedicated

More information

About Instance Initialization

About Instance Initialization Learning Object-Oriented Programming and Design with TDD About Instance Initialization Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W5S06 W5S06 2 / 26 How to ensure that an instance

More information

Iterators. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W3S09

Iterators. Damien Cassou, Stéphane Ducasse and Luc Fabresse.   W3S09 Iterators Damien Cassou, Stéphane Ducasse and Luc Fabresse W3S09 http://www.pharo.org W3S09 2 / 24 What You Will Learn Understand the power of iterators Offer an overview of iterators W3S09 3 / 24 Pharo

More information

An Overview of Essential Collections

An Overview of Essential Collections An Overview of Essential Collections Damien Cassou, Stéphane Ducasse and Luc Fabresse W3S07 http://www.pharo.org W3S07 2 / 31 What You Will Learn Some basic collections Essential API to program collections

More information

About Double Dispatch

About Double Dispatch Learning Object-Oriented Programming and Design with TDD About Double Dispatch Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W8S02 W8S02 2 / 31 Outline Some fun exercises Thinking

More information

Use vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse.

Use vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse. Learning Object-Oriented Programming and Design with TDD Use vs. Inheritance Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W6S06 W6S06 2 / 20 Outline An exercise Some criteria Solutions

More information

Powerful Exceptions: an Overview

Powerful Exceptions: an Overview Powerful Exceptions: an Overview Damien Cassou, Stéphane Ducasse and Luc Fabresse W5S04 http://www.pharo.org W5S04 2 / 21 Exceptions Really powerful Can be resumed, restarted, and signaled as new exception

More information

An Overview of Essential Collections

An Overview of Essential Collections Learning Object-Oriented Programming and Design with TDD An Overview of Essential Collections Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W2S08 W2S08 2 / 32 What You Will Learn

More information

Learning From Real Examples

Learning From Real Examples Learning Object-Oriented Programming and Design with TDD Learning From Real Examples Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W7S05 W7S05 2 / 21 What You Will Learn Thinking

More information

Pharo Syntax in a Nutshell

Pharo Syntax in a Nutshell Pharo Syntax in a Nutshell Damien Cassou, Stéphane Ducasse and Luc Fabresse W1S06, 2015 W1S06 2 / 28 Getting a Feel About Syntax In this lecture we want to give you the general feel to get started: Overview

More information

NeoJSON. 1.1 An Introduction to JSON

NeoJSON. 1.1 An Introduction to JSON C H A P T E R 1 Sven Van Caekenberghe with Damien Cassou and Stéphane Ducasse JSON (JavaScript Object Notation) is a popular data-interchange format. Neo- JSON is an elegant and efficient standalone Smalltalk

More information

CS 250 Databases and DBMSs. Benjamin Dicken

CS 250 Databases and DBMSs. Benjamin Dicken CS 250 Databases and DBMSs Benjamin Dicken Databases and DBMSs The word database is thrown around a lot, but it is often misused When learning about databases it is important to distinguish between a database

More information

TinyBlog: presentation and model

TinyBlog: presentation and model C H A P T E R 1 TinyBlog: presentation and model In this project, we will guide you to develop a mini project: a small web application, named TinyBlog, that manages a blog system (see its final state in

More information

A Lazy List Implementation in Squeak

A Lazy List Implementation in Squeak A Lazy List Implementation in Squeak Takashi Yamamiya This material is based upon work supported in part by the National Science Foundation under Grant No. 0639876. Any opinions, findings, and conclusions

More information

relational Key-value Graph Object Document

relational Key-value Graph Object Document NoSQL Databases Earlier We have spent most of our time with the relational DB model so far. There are other models: Key-value: a hash table Graph: stores graph-like structures efficiently Object: good

More information

Rules and syntax for inheritance. The boring stuff

Rules and syntax for inheritance. The boring stuff Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 THE FOLLOWING IS INTENDED TO OUTLINE OUR GENERAL PRODUCT DIRECTION. IT IS INTENDED FOR INFORMATION PURPOSES ONLY, AND MAY NOT BE INCORPORATED INTO ANY CONTRACT. IT IS NOT A COMMITMENT TO DELIVER ANY MATERIAL,

More information

Problems and Challenges when Building a Manager for Unused Objects

Problems and Challenges when Building a Manager for Unused Objects Problems and Challenges when Building a Manager for Unused Objects Mariano Martinez Peck, Marcus Denker, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse To cite this version: Mariano Martinez Peck, Marcus

More information

Tuesday, January 13, Backend III: Node.js with Databases

Tuesday, January 13, Backend III: Node.js with Databases 6.148 Backend III: Node.js with Databases HELLO AND WELCOME! Your Feels Lecture too fast! Your Feels Lecture too fast! Too many languages Your Feels Lecture too fast! Too many languages Code more in class

More information

How to Use JSON in MySQL Wrong

How to Use JSON in MySQL Wrong How to Use JSON in MySQL Wrong Bill Karwin, Square Inc. October, 2018 1 Me Database Developer at Square Inc. MySQL Quality Contributor Author of SQL Antipatterns: Avoiding the Pitfalls of Database Programming

More information

Polyglot Persistence. EclipseLink JPA for NoSQL, Relational, and Beyond. Shaun Smith Gunnar Wagenknecht

Polyglot Persistence. EclipseLink JPA for NoSQL, Relational, and Beyond. Shaun Smith Gunnar Wagenknecht Polyglot Persistence EclipseLink JPA for NoSQL, Relational, and Beyond Shaun Smith shaun.smith@oracle.com Gunnar Wagenknecht gunnar@wagenknecht.org 2012 Oracle and AGETO; Licensed under a Creative Commons

More information

MongoDB and Mysql: Which one is a better fit for me? Room 204-2:20PM-3:10PM

MongoDB and Mysql: Which one is a better fit for me? Room 204-2:20PM-3:10PM MongoDB and Mysql: Which one is a better fit for me? Room 204-2:20PM-3:10PM About us Adamo Tonete MongoDB Support Engineer Agustín Gallego MySQL Support Engineer Agenda What are MongoDB and MySQL; NoSQL

More information

Call Stack Management

Call Stack Management Call Stack Management Clément Béra with Stéphane Ducasse Square Bracket tutorials January 23, 2018 master @ 9343841* Copyright 2017 by Clément Béra with Stéphane Ducasse. The contents of this book are

More information

Problems and Challenges when Building a Manager for Unused Objects

Problems and Challenges when Building a Manager for Unused Objects Problems and Challenges when Building a Manager for Unused Objects Mariano Martinez Peck 1,2,, Noury Bouraqadi 2, Marcus Denker 1, Stéphane Ducasse 1, Luc Fabresse 2 Abstract Large object-oriented applications

More information

9. Understanding Classes and Metaclasses

9. Understanding Classes and Metaclasses 9. Understanding Classes and Metaclasses ST Introduction Birds-eye view Reify your metamodel A fully reflective system models its own metamodel. 1.2 Roadmap > Metaclasses in 7 points > Indexed Classes

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 11: Connection to Databases Lecture Contents 2 What is a database? Relational databases Cases study: A Books Database Querying

More information

2. Classes & Inheritance. Classes. Classes. Éric Tanter Objects and Design in Smalltalk. How do you create objects?

2. Classes & Inheritance. Classes. Classes. Éric Tanter Objects and Design in Smalltalk. How do you create objects? Objects and Design in Smalltalk 2. Classes & Inheritance Éric Tanter etanter@dcc.uchile.cl 1 Classes How do you create objects? Ex-nihilo in prototype-based languages With a class in class-based languages

More information

CS 250 SQL and SQLite. Benjamin Dicken

CS 250 SQL and SQLite. Benjamin Dicken CS 250 SQL and SQLite Benjamin Dicken SQL SQL (Structured Query Language) is a programming language designed for managing schema and data held in a relational database management system (RDBMS) SQLite

More information

MongoDB. CSC309 TA: Sukwon Oh

MongoDB. CSC309 TA: Sukwon Oh MongoDB CSC309 TA: Sukwon Oh Review SQL declarative language for querying data tells what to find and not how to find Review RDBMS Characteristics Easy to use Complicated to use it right Fixed schema Difficult

More information

The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker 2016Postgres 中国用户大会 Postgres Conference China 20

The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker 2016Postgres 中国用户大会 Postgres Conference China 20 The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker Development actors Frontend developer Backend developer Database administrator System administrator

More information

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos Instituto Politécnico de Tomar Introduction to Big Data NoSQL Databases Ricardo Campos Mestrado EI-IC Análise e Processamento de Grandes Volumes de Dados Tomar, Portugal, 2016 Part of the slides used in

More information

3. A Simple Counter. Creating your own class

3. A Simple Counter. Creating your own class In this exercise, you will write your first complete program. The program is very simple, the goal of the exercise is to get used to the Pharo environment and the basics of the language. From the Pharo

More information

{SDD} Applied NoSQL in.net. Software Design & Development. Michael

{SDD} Applied NoSQL in.net. Software Design & Development. Michael {SDD} 2015 Software Design & Development Applied NoSQL in.net Michael Kennedy @mkennedy http://blog.michaelckennedy.net Objectives Describe the changes in the world of data management Install MongoDB and

More information

Approach for Mapping Ontologies to Relational Databases

Approach for Mapping Ontologies to Relational Databases Approach for Mapping Ontologies to Relational Databases A. Rozeva Technical University Sofia E-mail: arozeva@tu-sofia.bg INTRODUCTION Research field mapping ontologies to databases Research goal facilitation

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) Spherical Modeling Tool Team 13 Minsuk Heo, Prototyper Lyle Franklin, Project Manager Mehmet Sezer, Requirements Engineer Oziel De Oliveira Carneiro,

More information

Efficient Proxies in Smalltalk

Efficient Proxies in Smalltalk Efficient Proxies in Smalltalk Mariano Martinez Peck 12 Noury Bouraqadi 2 Marcus Denker 1 Stéphane Ducasse 1 Luc Fabresse 2 1 RMoD Project-Team, Inria Lille Nord Europe / Université de Lille 1 2 Université

More information

Jumpstarting the Semantic Web

Jumpstarting the Semantic Web Jumpstarting the Semantic Web Mark Watson. Copyright 2003, 2004 Version 0.3 January 14, 2005 This work is licensed under the Creative Commons Attribution-NoDerivs-NonCommercial License. To view a copy

More information

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to

More information

Data Warehouse and Data Mining

Data Warehouse and Data Mining Data Warehouse and Data Mining Lecture No. 09 Plannning Data Warehouse Naeem Ahmed Email: naeemmahoto@gmail.com Department of Software Engineering Mehran Univeristy of Engineering and Technology Jamshoro

More information

Relational databases and SQL

Relational databases and SQL Relational databases and SQL Relational Database Management Systems Most serious data storage is in RDBMS Oracle, MySQL, SQL Server, PostgreSQL Why so popular? Based on strong theory, well-understood performance

More information

The Entity-Relationship Model

The Entity-Relationship Model The Entity-Relationship Model Chapter 2 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Overview of Database Design Conceptual design: (ER Model is used at this stage.) What are the entities

More information

Pillar: A Versatile and Extensible Lightweight Markup Language

Pillar: A Versatile and Extensible Lightweight Markup Language Pillar: A Versatile and Extensible Lightweight Markup Language Thibault Arloing Yann Dubois Damien Cassou Stéphane Ducasse thibault.arloing@etudiant.univ-lille1.fr yann1.dubois@etudiant.univ-lille1.fr

More information

APIEvolutionMiner: Keeping API Evolution under Control

APIEvolutionMiner: Keeping API Evolution under Control APIEvolutionMiner: Keeping API Evolution under Control André Hora, Anne Etien, Nicolas Anquetil, Stéphane Ducasse, Marco Tulio Valente RMoD team, Inria, Lille, France Email: firstname.lastname@inria.fr

More information

Lesson 13 Transcript: User-Defined Functions

Lesson 13 Transcript: User-Defined Functions Lesson 13 Transcript: User-Defined Functions Slide 1: Cover Welcome to Lesson 13 of DB2 ON CAMPUS LECTURE SERIES. Today, we are going to talk about User-defined Functions. My name is Raul Chong, and I'm

More information

Pillar: A Versatile and Extensible Lightweight Markup Language

Pillar: A Versatile and Extensible Lightweight Markup Language Pillar: A Versatile and Extensible Lightweight Markup Language Thibault Arloing, Yann Dubois, Damien Cassou, Stéphane Ducasse To cite this version: Thibault Arloing, Yann Dubois, Damien Cassou, Stéphane

More information

CS 403/503 Exam 4 Spring 2017 Name

CS 403/503 Exam 4 Spring 2017 Name CS 403/503 Exam 4 Spring 2017 Name CS 403 Score is based on your best 8 out of 10 problems. CS 503 Score is based on your best 9 out of 10 problems. Extra credit will be awarded if you can solve additional

More information

Design Xml Schema For The Given Company Database

Design Xml Schema For The Given Company Database Design Xml Schema For The Given Company Database oxygen provides a powerful and expressive schema diagram editor (Design mode) for editing XML Schemas. The structure of the diagram editor is designed.

More information

Language-side Foreign Function Interfaces with NativeBoost

Language-side Foreign Function Interfaces with NativeBoost Language-side Foreign Function Interfaces with NativeBoost IWST 2013 Camillo Bruni, Luc Fabresse, Stéphane Ducasse, Igor Stasenko Outline 1. Context 2. Existing Solutions 3. NativeBoost 4. Speed Comparison

More information

! Quick review of ! normalization! referential integrity ! Basic MySQL ! Other types of DBs

! Quick review of ! normalization! referential integrity ! Basic MySQL ! Other types of DBs CS 418/518 Web Programming Spring 2014 MySQL Dr. Michele Weigle http://www.cs.odu.edu/~mweigle/cs418-s14/ Outline! Assigned Reading! Chapter 3 "Using PHP5 with MySQL"! Chapter 10 "Building Databases"!

More information

Zero Configuration Scripts and Command-Line Handlers

Zero Configuration Scripts and Command-Line Handlers Zero Configuration Scripts and Command-Line Handlers Chapter 1 Zero Configuration Scripts and Command-Line Handlers with the participation of: Camillo Bruni (camillobruni@gmail.com) Weren t you fed up

More information

(Introduction Title slide) (Forward engineering) [Start demo]

(Introduction Title slide) (Forward engineering) [Start demo] (Introduction Title slide) Welcome to this demonstration of IBM InfoSphere Data Architect. InfoSphere Data Architect is a collaborative data design solution to discover, model, relate, and standardize

More information

MongoDB Essentials - Level 2. Description. Course Duration: 2 Days. Course Authored by CloudThat

MongoDB Essentials - Level 2. Description. Course Duration: 2 Days. Course Authored by CloudThat MongoDB Essentials - Level 2 Course Duration: 2 Days Course Authored by CloudThat Description MongoDB Essentials aims at equipping the attendees with essential knowledge and working experience to set up

More information

More On inheritance. What you can do in subclass regarding methods:

More On inheritance. What you can do in subclass regarding methods: More On inheritance What you can do in subclass regarding methods: The inherited methods can be used directly as they are. You can write a new static method in the subclass that has the same signature

More information

2. Smalltalk a reflective language. Oscar Nierstrasz

2. Smalltalk a reflective language. Oscar Nierstrasz 2. Smalltalk a reflective language Oscar Nierstrasz Birds-eye view Smalltalk is still today one of the few fully reflective, fully dynamic, objectoriented development environments. We will see how a simple,

More information

Reverse engineering UML classes from source files

Reverse engineering UML classes from source files Instant Reverse is a process to produce UML class model from a given input of source code. With instant reverse, you can reverse a snap shot of your code-base to UML classes and form class diagram in further.

More information

Enabling PHP Software Engineering Research in Rascal

Enabling PHP Software Engineering Research in Rascal Enabling PHP Software Engineering Research in Rascal Mark Hills and Paul Klint WASDeTT July 1, 2013 Montpellier, France http://www.rascal-mpl.org Why look at PHP applications? 2 Why look at PHP applications?

More information

Object-Relational Persistence with Glorp

Object-Relational Persistence with Glorp Object-Relational Persistence with Glorp E Maringolo, N Pratt, R Withney To cite this version: E Maringolo, N Pratt, R Withney. Object-Relational Persistence with Glorp. 2017, Stéphane Ducasse.

More information

OVERVIEW OF DATABASE DEVELOPMENT

OVERVIEW OF DATABASE DEVELOPMENT DATABASE SYSTEMS I WEEK 2: THE ENTITY-RELATIONSHIP MODEL OVERVIEW OF DATABASE DEVELOPMENT Requirements Analysis / Ideas High-Level Database Design Conceptual Database Design / Relational Database Schema

More information

Storage Tier. Mendel Rosenblum. CS142 Lecture Notes - Database.js

Storage Tier. Mendel Rosenblum. CS142 Lecture Notes - Database.js Storage Tier Mendel Rosenblum.js Web Application Architecture Web Browser Web Server Storage System HTTP Internet LAN 2 Web App Storage System Properties Always available - Fetch correct app data, store

More information

Event Stores (I) [Source: DB-Engines.com, accessed on August 28, 2016]

Event Stores (I) [Source: DB-Engines.com, accessed on August 28, 2016] Event Stores (I) Event stores are database management systems implementing the concept of event sourcing. They keep all state changing events for an object together with a timestamp, thereby creating a

More information

CISC 7610 Lecture 4 Approaches to multimedia databases. Topics: Document databases Graph databases Metadata Column databases

CISC 7610 Lecture 4 Approaches to multimedia databases. Topics: Document databases Graph databases Metadata Column databases CISC 7610 Lecture 4 Approaches to multimedia databases Topics: Document databases Graph databases Metadata Column databases NoSQL architectures: different tradeoffs for different workloads Already seen:

More information

On NoSQL technologies - Part II.

On NoSQL technologies - Part II. On NoSQL technologies - Part II. Editor Roberto V. Zicari ODBMS.ORG www.odbms.org February 2010 Content NoSQL technologies: Interview with John Clapperton. Carl Olofson on Nonschematic" databases. Are

More information

Project Management with RStudio

Project Management with RStudio Project Management with RStudio Tzu L. Phang 2016-10-10 Project Management with RStudio: Overview Goto Class link to follow along Questions How can I manage my projects in R? Objectives To be able to create

More information

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Lessons learned from building Eclipse-based add-ons for commercial modeling tools Lessons learned from building Eclipse-based add-ons for commercial modeling tools (from a technology perspective) István Ráth Ákos Horváth EclipseCon France June 14 2018 MagicDraw A popular modeling tool

More information

Practice PT: Sample Write Up - Improved Digital Assistant

Practice PT: Sample Write Up - Improved Digital Assistant Practice PT: Sample Write Up - Improved Digital Assistant 1. Video Link: https://drive.google.com/open?id=0b78n8p4zhhfgrffueglkm2zey2m 2a. My project, which extends a project started in class, is a JavaScript

More information

Applied NoSQL in.net

Applied NoSQL in.net Applied NoSQL in.net Topics Survey data management world Install mongodb Map C# classes to mongo collections Explore schema design Write queries against mongodb Update records Breaking with tradition is

More information

PHP Object-Relational Mapping Libraries in action

PHP Object-Relational Mapping Libraries in action PHP Object-Relational Mapping Libraries in action Apr 14, 2010 O'Reilly MySQL Conference and Expo Santa Clara, CA Fernando Ipar & Ryan Lowe Percona Inc. -2- Agenda What are ORM libraries Object Oriented

More information

Scripting Browsers. Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger

Scripting Browsers. Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger Scripting Browsers Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger Software Composition Group, University of Bern, Switzerland 1 Glamour in a Nutshell Browsers are crucial

More information

The Entity-Relationship Model

The Entity-Relationship Model The Entity-Relationship Model Chapter 2 Instructor: Vladimir Zadorozhny vladimir@sis.pitt.edu Information Science Program School of Information Sciences, University of Pittsburgh 1 Database: a Set of Relations

More information

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations

More information

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing R. Paul, W. T. Tsai, Jay Bayne 1 Table of Content Introduction Service-Oriented Computing Acceptance of SOA within DOD Policy-based

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 14 Reengineering Patterns Part 2 1 Reengineering Patterns: Detecting Duplicated Code 2 Detecting Duplicated Code: Compare Code Mechanically

More information

Contents. Database. Information Policy. C03. Entity Relationship Model WKU-IP-C03 Database / Entity Relationship Model

Contents. Database. Information Policy. C03. Entity Relationship Model WKU-IP-C03 Database / Entity Relationship Model Information Policy Database C03. Entity Relationship Model Code: 164323-03 Course: Information Policy Period: Spring 2013 Professor: Sync Sangwon Lee, Ph. D 1 Contents 01. Overview of Database Design 02.

More information

6.170 Final Project Weekly Meeting Agenda

6.170 Final Project Weekly Meeting Agenda 6.170 Final Project Weekly Meeting Agenda Week 1 (Apr. 20th) This is the first project meeting. Team #2: Super Tripper Team members: Yu chi Kuo, Chun Kai Wang, Hao Yu Wu 1. Hand in revised proposal and

More information

COSC 304 Introduction to Database Systems. NoSQL Databases. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 304 Introduction to Database Systems. NoSQL Databases. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 304 Introduction to Database Systems NoSQL Databases Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Relational Databases Relational databases are the dominant form

More information

Introduction to Information Systems

Introduction to Information Systems Table of Contents 1... 2 1.1 Introduction... 2 1.2 Architecture of Information systems... 2 1.3 Classification of Data Models... 4 1.4 Relational Data Model (Overview)... 8 1.5 Conclusion... 12 1 1.1 Introduction

More information

Design and development of a distributed, secure and resilient vault management system

Design and development of a distributed, secure and resilient vault management system Design and development of a distributed, secure and resilient vault management system Mathonet G. University of Liège, Belgium June 2017 Mathonet G. (University of Liège, Belgium) Design and development

More information

CS639: Data Management for Data Science. Lecture 1: Intro to Data Science and Course Overview. Theodoros Rekatsinas

CS639: Data Management for Data Science. Lecture 1: Intro to Data Science and Course Overview. Theodoros Rekatsinas CS639: Data Management for Data Science Lecture 1: Intro to Data Science and Course Overview Theodoros Rekatsinas 1 2 Big science is data driven. 3 Increasingly many companies see themselves as data driven.

More information

Accessing other data fdw, dblink, pglogical, plproxy,...

Accessing other data fdw, dblink, pglogical, plproxy,... Accessing other data fdw, dblink, pglogical, plproxy,... Hannu Krosing, Quito 2017.12.01 1 Arctic Circle 2 Who am I Coming from Estonia PostgreSQL user since about 1990 (when it was just Postgres 4.2)

More information

COMP 4905 Honours Project Winter RSpace : A Tuple Space Implementation Using RESTful Web Services

COMP 4905 Honours Project Winter RSpace : A Tuple Space Implementation Using RESTful Web Services COMP 4905 Honours Project Winter 2014 RSpace : A Tuple Space Implementation Using RESTful Web Services Author: Paul Hayman Student #: 100797901 Project Supervisor : Professor Tony White 1 Abstract RSpace

More information

The Entity-Relationship Model. Overview of Database Design

The Entity-Relationship Model. Overview of Database Design The Entity-Relationship Model Chapter 2, Chapter 3 (3.5 only) Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Overview of Database Design Conceptual design: (ER Model is used at this stage.)

More information

COSC 416 NoSQL Databases. NoSQL Databases Overview. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 416 NoSQL Databases. NoSQL Databases Overview. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 416 NoSQL Databases NoSQL Databases Overview Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Databases Brought Back to Life!!! Image copyright: www.dragoart.com Image

More information

What is database? Types and Examples

What is database? Types and Examples What is database? Types and Examples Visit our site for more information: www.examplanning.com Facebook Page: https://www.facebook.com/examplanning10/ Twitter: https://twitter.com/examplanning10 TABLE

More information

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX 1 Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX About me 2 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality assurance Performance

More information

Historization and Versioning of DDI-Lifecycle Metadata Objects

Historization and Versioning of DDI-Lifecycle Metadata Objects Historization and Versioning of DDI-Lifecycle Metadata Objects Findings in the STARDAT Project 5rd Annual European DDI Users Group Meeting Paris, 03.-04.12.2013 Alexander Mühlbauer GESIS Leibniz Institute

More information

Lab 1: Space Invaders. The Introduction

Lab 1: Space Invaders. The Introduction Lab 1: Space Invaders The Introduction Welcome to Lab! Feel free to get started until we start talking! The lab document is located on course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ Be sure

More information

DEC Computer Technology LESSON 6: DATABASES AND WEB SEARCH ENGINES

DEC Computer Technology LESSON 6: DATABASES AND WEB SEARCH ENGINES DEC. 1-5 Computer Technology LESSON 6: DATABASES AND WEB SEARCH ENGINES Monday Overview of Databases A web search engine is a large database containing information about Web pages that have been registered

More information

Online Multimedia Winter semester 2015/16

Online Multimedia Winter semester 2015/16 Multimedia im Netz Online Multimedia Winter semester 2015/16 Tutorial 09 Major Subject Ludwig-Maximilians-Universität München Online Multimedia WS 2015/16 - Tutorial 09-1 Today s Agenda Discussion: Intellectual

More information

SQL Commands & Mongo DB New Syllabus

SQL Commands & Mongo DB New Syllabus Chapter 15 : Computer Science Class XI ( As per CBSE Board) SQL Commands & Mongo DB New Syllabus 2018-19 SQL SQL is an acronym of Structured Query Language.It is a standard language developed and used

More information

Bases de Dades: introduction to SQL (indexes and transactions)

Bases de Dades: introduction to SQL (indexes and transactions) Bases de Dades: introduction to SQL (indexes and transactions) Andrew D. Bagdanov bagdanov@cvc.uab.es Departamento de Ciencias de la Computación Universidad Autónoma de Barcelona Fall, 2010 Questions from

More information

hybrid client-server and p2p network for web-based collaborative 3d design

hybrid client-server and p2p network for web-based collaborative 3d design hybrid client-server and p2p network for web-based collaborative 3d design Caroline DESPRAT a, Hervé LUGA b, Jean-Pierre JESSEL c June 9, 2015 WSCG 15 Plzen, Czech Republic VORTEX team, IRIT UMR 5505,

More information

Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture Patterns of Enterprise Application Architecture CS446/ECE452/SE464 Majed Al-Shawa Q1: Performance There are two systems, Shark and Whale. Each system is running on a single processor, but Shark produces

More information

fohgp siejt karbl mcqdn

fohgp siejt karbl mcqdn CS 403/503 Exam 4 Spring 2017 Solution CS 403 Score is based on your best 8 out of 10 problems. CS 503 Score is based on your best 9 out of 10 problems. Extra credit will be awarded if you can solve additional

More information

Creating Connection With Hive. Version: 16.0

Creating Connection With Hive. Version: 16.0 Creating Connection With Hive Version: 16.0 Copyright 2015 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not be copied or derived

More information

The Entity-Relationship Model. Overview of Database Design. ER Model Basics. (Ramakrishnan&Gehrke, Chapter 2)

The Entity-Relationship Model. Overview of Database Design. ER Model Basics. (Ramakrishnan&Gehrke, Chapter 2) The Entity-Relationship Model (Ramakrishnan&Gehrke, Chapter 2) CS 432 Fall 2007 1 Overview of Database Design Conceptual design: (ER Model is used at this stage.) What are the entities and relationships

More information

Thinking of Databases

Thinking of Databases Thinking of Databases Databases are organized on two levels: physical is how the data is stored, logical is how it s viewed 2006 Lawrence Snyder Big Picture A database is made of Physical database -- tables

More information

The dialog boxes Import Database Schema, Import Hibernate Mappings and Import Entity EJBs are used to create annotated Java classes and persistence.

The dialog boxes Import Database Schema, Import Hibernate Mappings and Import Entity EJBs are used to create annotated Java classes and persistence. Schema Management In Hibernate Mapping Different Automatic schema generation with SchemaExport Managing the cache Implementing MultiTenantConnectionProvider using different connection pools, 16.3. Hibernate

More information

Chapter 13 XML: Extensible Markup Language

Chapter 13 XML: Extensible Markup Language Chapter 13 XML: Extensible Markup Language - Internet applications provide Web interfaces to databases (data sources) - Three-tier architecture Client V Application Programs Webserver V Database Server

More information

NoSQL Database Comparison: Bigtable, Cassandra and MongoDB CJ Campbell Brigham Young University October 16, 2015

NoSQL Database Comparison: Bigtable, Cassandra and MongoDB CJ Campbell Brigham Young University October 16, 2015 Running Head: NOSQL DATABASE COMPARISON: BIGTABLE, CASSANDRA AND MONGODB NoSQL Database Comparison: Bigtable, Cassandra and MongoDB CJ Campbell Brigham Young University October 16, 2015 1 INTRODUCTION

More information