Patterns of Enterprise Application Architecture

Size: px
Start display at page:

Download "Patterns of Enterprise Application Architecture"

Transcription

1 Patterns of Enterprise Application Architecture CS446/ECE452/SE464 Majed Al-Shawa

2 Q1: Performance There are two systems, Shark and Whale. Each system is running on a single processor, but Shark produces 60 tps (transactions per second), while Whale produces 40 tps. After adding a processor to each system, Shark produces 90 tps and Whale produces 80 tps. As more processors are added, each system exhibits a linear increase in performance. Which system is more scalable, with respect to processor addition?

3 A1: Performance scalability =

4 A1: Performance scalability = change in performance / change in resources

5 A1: Performance scalability = change in performance / change in resources scalability shark = (tps new - tps old ) / number of processors added scalability whale = (tps new - tps old ) / number of processors added

6 A1: Performance scalability = change in performance / change in resources scalability shark = (tps new - tps old ) / number of processors added = (90 tps - 60 tps) / 1 processor = 30 tps / processor scalability whale = (tps new - tps old ) / number of processors added = (80 tps - 40 tps) / 1 processor = 40 tps / processor

7 A1: Performance scalability = change in performance / change in resources scalability shark = (tps new - tps old ) / number of processors added = (90 tps - 60 tps) / 1 processor = 30 tps / processor scalability whale = (tps new - tps old ) / number of processors added = (80 tps - 40 tps) / 1 processor = 40 tps / processor Therefore, Whale is a more scalable system Obviously, this calculation works only because the example assumes linear growth in performance. In general, you have to compare the two [performance vs. resource] curves for a range of resources.

8 Q2: Simple Expense-Tracking System There is a simple expense-tracking system that keeps track of expenses incurred on accounts for a small company. An expense is simply some amount of money that is incurred on an account at a point in time for some purpose. The system can perform three kinds of operations: 1) book an expense for an account 2) determine the expense balance for an account for a range of dates 3) determine the largest expense in the system What domain logic and data source architectural patterns would you use? Describe each pattern and explain why you would use each pattern. Show the class diagrams and the database schema used.

9 A2: Simple Expense-Tracking System Domain Logic Transaction Script Description: 1 business logic-containing procedure for each presentation request Reason for usage: simple implementation that works for a simple problem (few rules, not complex) Data Source Table Data Gateway Description: 1 class provides interface to perform database access on 1 table Reason for usage: separate queries from business logic, granularity appropriate for this small problem (even just one Table Data Gateway for all tables) Database schema CREATE TABLE accounts (ID int primary key, description varchar) CREATE TABLE expenses (ID int primary key, accountid int foreign key references accounts(id), amount int, description varchar, timebooked datetime)

10 A2: Simple Expense-Tracking System Domain Logic Transaction Script Description: 1 business logic-containing procedure for each presentation request Reason for usage: simple implementation that works for a simple problem (few rules, not complex) Data Source Table Data Gateway Description: 1 class provides interface to perform database access on 1 table Reason for usage: separate queries from business logic, granularity appropriate for this small problem (even just one Table Data Gateway for all tables) Database schema CREATE TABLE accounts (ID int primary key, description varchar) CREATE TABLE expenses (ID int primary key, accountid int foreign key references accounts(id), amount int, description varchar, timebooked datetime)

11 A2: Simple Expense-Tracking System Domain Logic Transaction Script Description: 1 business logic-containing procedure for each presentation request Reason for usage: simple implementation that works for a simple problem (few rules, not complex) Data Source Table Data Gateway Description: 1 class provides interface to perform database access on 1 table Reason for usage: separate queries from business logic, granularity appropriate for this small problem (even just one Table Data Gateway for all tables) Database schema CREATE TABLE accounts (ID int primary key, description varchar) CREATE TABLE expenses (ID int primary key, accountid int foreign key references accounts(id), amount int, description varchar, timebooked datetime)

12 A2: Simple Expense-Tracking System Class diagrams Services group the Transaction Scripts in meaningful ways As data complexity increases, multiple Table Data Gateways may be used AccountService + bookexpense(expense: ExpenseBean): void + getexpensesbalance (accountid: int, starting: Time, ending: Time): Money <<accesses DB usings>> Gateway + insertexpense(accountid: int, amount: int, description: String, timebooked: Time): void <<provides access to>> <<Database>> ExpenseService + getlargestexpense(): ExpenseBean <<accesses DB usings>> + findexpenses(accountid: int, starting: Time, ending: Time): ResultSet + remove + update

13 Q3: More Sophisticated Expense- Tracking System There is an expense-tracking system that has a slightly more sophisticated business logic than the previous system, for which you re able to create your own database schema. This system can perform numerous tax-related operations on expenses, including the ability to determine how much of an expense is tax-deductible according to different tax laws Your team is comfortable with object-oriented design. What domain logic and data source architectural patterns would you use? Describe each pattern and explain why you would use each pattern. Show the class diagrams.

14 A3: More Sophisticated Expense- Tracking System Domain Logic Simple Domain Model Description: an object model of the domain incorporates both behaviour and data, but that is not very complicated Reason for usage: complex business logic Data Source Active Record Description: an object that wraps a row in a database table or view, encapsulates the database access and adds domain logic on that data Reason for usage: Simple Domain Model, class structure not very different from the database schema

15 A3: More Sophisticated Expense- Tracking System Domain Logic Simple Domain Model Description: an object model of the domain incorporates both behaviour and data, but that is not very complicated Reason for usage: complex business logic Data Source Active Record Description: an object that wraps a row in a database table or view, encapsulates the database access and adds domain logic on that data Reason for usage: Simple Domain Model, class structure not very different from the database schema

16 A3: More Sophisticated Expense- Tracking System Domain Logic Simple Domain Model Description: an object model of the domain incorporates both behaviour and data, but that is not very complicated Reason for usage: complex business logic Data Source Active Record Description: an object that wraps a row in a database table or view, encapsulates the database access and adds domain logic on that data Reason for usage: Simple Domain Model, class structure not very different from the database schema

17 A3: More Sophisticated Expense- Tracking System - description: String - type: AccountType + insert + update + delete Account <<Database>> Tables: Account, Expense <<provides access to>> <<provides access to>> <<provides access to>> - expenses 1 0..* Expense - amount: int - account: Account - timebooked: Time - type: ExpenseType + insert + update + delete + gettaxdeductableamount(): int TaxStrategy + gettaxdeductableamount (expense: Expense): int <<calculates tax deductable amount using>> Finder ConcreteTaxStrategy1 ConcreteTaxStrategy2 + findexpensesforaccount(id: int): Account + gettaxdeductableamount (expense: Expense): int + gettaxdeductableamount (expense: Expense): int

18 Q4: Lazy loading using ghosts What design mechanisms are used to decouple domain objects in the domain logic layer from data mappers in data source layer when loading ghosts? Explain the rationale behind the mechanisms.

19 A4: Lazy loading using ghosts DomainObject needs to access DataSource, however, DomainObject should not be dependent on DataSource Therefore we use dependency inversion, which means that DomainObject accesses DataSource interface (IDataSource), which is in the domain logic layer There is a subclass of Mapper for every subclass of DomainObject MapperRegistry receives operations against an instance of a subclass of DomainObject, looks up the corresponding singleton subclass of Mapper, then forwards operations to the singleton MapperRegistry is a middleman that allows decoupling of concrete Mappers from concrete DomainObjects MapperRegistry, in the data source layer, implements the DataSource interface

20 Q5: Lazy loading collections How would you avoid ripple loading when loading a collection of objects using the lazy load mechanism?

21 A5: Lazy loading collections Lazy Loading the Collection The collection is Lazy Loaded. The database is hit once for the entire collection and all of its objects are retrieved at once.

22 Q6: Identity Field Discuss the problems associated with the different ways of getting a new key for the Identity Field objectrelational structural pattern.

23 A6: Identity Field Auto-generate Auto-generated field Can determine the new key only after insertion Cumbersome to insert rows related by foreign key constraints due to the need to specify foreign keys Database counter GUID A query (in a separate transaction) allows multiple ID values to be retrieved Nonstandard Readability Large in size

24 A6: Identity Field Generate your own Table scan using SQL max function (largest integer in the column + 1) Read-locks the table, preventing concurrent updates/insertions (resource contention) Must ensure complete isolation between transactions (otherwise, duplicate IDs) Separate key table <table name, latest key value> (database wide key system means 1 row only, with table name =database name) Key table update should be in a separate transaction. Otherwise, other transactions requiring access to the same row cannot continue. But putting into a separate transaction means that rollback of transactions will cause the new keys made by these transactions to become invalid (but this can be fixed)

Introduction. Example Databases

Introduction. Example Databases Introduction Example databases Overview of concepts Why use database systems Example Databases University Data: departments, students, exams, rooms,... Usage: creating exam plans, enter exam results, create

More information

Software LEIC/LETI. Lecture 10

Software LEIC/LETI. Lecture 10 Software Engineering @ LEIC/LETI Lecture 10 Last Lecture Project Management Large Number of Features Project Planning Risk Management Agile Planning Scrum (Sommerville, Fig 3.9) (http://en.wikipedia.org/wiki/scrum_(software_development))

More information

SQL STORED ROUTINES. CS121: Relational Databases Fall 2017 Lecture 9

SQL STORED ROUTINES. CS121: Relational Databases Fall 2017 Lecture 9 SQL STORED ROUTINES CS121: Relational Databases Fall 2017 Lecture 9 SQL Functions 2 SQL queries can use sophisticated math operations and functions Can compute simple functions, aggregates Can compute

More information

Databases. Jörg Endrullis. VU University Amsterdam

Databases. Jörg Endrullis. VU University Amsterdam Databases Jörg Endrullis VU University Amsterdam Databases A database (DB) is a collection of data with a certain logical structure a specific semantics a specific group of users Databases A database (DB)

More information

Outline. Database Tuning. Ideal Transaction. Concurrency Tuning Goals. Concurrency Tuning. Nikolaus Augsten. Lock Tuning. Unit 8 WS 2013/2014

Outline. Database Tuning. Ideal Transaction. Concurrency Tuning Goals. Concurrency Tuning. Nikolaus Augsten. Lock Tuning. Unit 8 WS 2013/2014 Outline Database Tuning Nikolaus Augsten University of Salzburg Department of Computer Science Database Group 1 Unit 8 WS 2013/2014 Adapted from Database Tuning by Dennis Shasha and Philippe Bonnet. Nikolaus

More information

Produced by. Design Patterns. MSc Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc Computer Science. Eamonn de Leastar Design Patterns MSc Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Database Management and Tuning

Database Management and Tuning Database Management and Tuning Concurrency Tuning Johann Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE Unit 8 May 10, 2012 Acknowledgements: The slides are provided by Nikolaus

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability

More information

Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture Patterns of Enterprise Application Architecture Martin Fowler The Addison-Wesley Signature Series 2003 525 pages Ref: http://nida.se/patterns/poeaa/index.html A. Domain Logic Patterns 1. Transaction Script

More information

Chapter 8: Working With Databases & Tables

Chapter 8: Working With Databases & Tables Chapter 8: Working With Databases & Tables o Working with Databases & Tables DDL Component of SQL Databases CREATE DATABASE class; o Represented as directories in MySQL s data storage area o Can t have

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

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams Where Are We? Introduction to Data Management CSE 344 Lecture 15: Constraints We know quite a bit about using a DBMS Start with real-world problem, design ER diagram From ER diagram to relations -> conceptual

More information

Introduction. Who wants to study databases?

Introduction. Who wants to study databases? Introduction Example databases Overview of concepts Why use database systems Who wants to study databases? What is the use of all the courses I have taken so far? This course shows very concrete how CS

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

Software LEIC/LETI. Lecture 15

Software LEIC/LETI. Lecture 15 Software Engineering @ LEIC/LETI Lecture 15 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the Project Today Enterprise Application Architecture

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

MICHIEL ROOK DATABASE MIGRATIONS WITHOUT DOWN TIME

MICHIEL ROOK DATABASE MIGRATIONS WITHOUT DOWN TIME MICHIEL ROOK DATABASE MIGRATIONS WITHOUT DOWN TIME @michieltcs Developer, consultant, trainer, speaker @michieltcs ABOUT DATABASE MIGRATIONS ABOUT SCHEMA MIGRATIONS SQL UP @michieltcs UP DOWN @michieltcs

More information

CSE 530A ACID. Washington University Fall 2013

CSE 530A ACID. Washington University Fall 2013 CSE 530A ACID Washington University Fall 2013 Concurrency Enterprise-scale DBMSs are designed to host multiple databases and handle multiple concurrent connections Transactions are designed to enable Data

More information

Module 9: Managing Schema Objects

Module 9: Managing Schema Objects Module 9: Managing Schema Objects Overview Naming guidelines for identifiers in schema object definitions Storage and structure of schema objects Implementing data integrity using constraints Implementing

More information

Locking, Blocking, Versions: Concurrency for Maximum Performance. Kalen Delaney, Moderated By: Daniel Janik

Locking, Blocking, Versions: Concurrency for Maximum Performance. Kalen Delaney,   Moderated By: Daniel Janik Locking, Blocking, Versions: Concurrency for Maximum Performance Kalen Delaney, www.sqlserverinternals.com Moderated By: Daniel Janik Thank You microsoft.com idera.com attunity.com Empower users with new

More information

Learning patterns of application architecture by looking at code

Learning patterns of application architecture by looking at code Proceedings of the 11th WSEAS International Conference on COMPUTERS, Agios Nikolaos, Crete Island, Greece, July 26-28, 2007 577 Learning patterns of application architecture by looking at code PAULO SOUSA

More information

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11 DATABASE PERFORMANCE AND INDEXES CS121: Relational Databases Fall 2017 Lecture 11 Database Performance 2 Many situations where query performance needs to be improved e.g. as data size grows, query performance

More information

Heckaton. SQL Server's Memory Optimized OLTP Engine

Heckaton. SQL Server's Memory Optimized OLTP Engine Heckaton SQL Server's Memory Optimized OLTP Engine Agenda Introduction to Hekaton Design Consideration High Level Architecture Storage and Indexing Query Processing Transaction Management Transaction Durability

More information

Object Persistence Design Guidelines

Object Persistence Design Guidelines Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task

More information

Background. vanilladb.org

Background. vanilladb.org Background vanilladb.org Why do you need a database system? 2 To store data, why not just use a file system? 3 Advantages of a Database System It answers queries fast Q1: among a set of blog pages, find

More information

DB Creation with SQL DDL

DB Creation with SQL DDL DB Creation with SQL DDL Outline SQL Concepts Data Types Schema/Table/View Creation Transactions and Access Control Objectives of SQL Ideally, database language should allow user to: create the database

More information

Database Technology Introduction. Heiko Paulheim

Database Technology Introduction. Heiko Paulheim Database Technology Introduction Outline The Need for Databases Data Models Relational Databases Database Design Storage Manager Query Processing Transaction Manager Introduction to the Relational Model

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 10: Transaction processing. November 14, Lecturer: Rasmus Pagh

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 10: Transaction processing. November 14, Lecturer: Rasmus Pagh Introduction to Databases, Fall 2005 IT University of Copenhagen Lecture 10: Transaction processing November 14, 2005 Lecturer: Rasmus Pagh Today s lecture Part I: Transaction processing Serializability

More information

Database Systems CSE 414

Database Systems CSE 414 Database Systems CSE 414 Lecture 20: Introduction to Transactions CSE 414 - Spring 2017 1 Announcements HW6 due on Wednesday WQ6 available for one more day WQ7 (last one!) due on Sunday CSE 414 - Spring

More information

Software Architecture Design Architectural Patterns

Software Architecture Design Architectural Patterns Software Architecture Design Architectural Patterns Matthew Dailey Computer Science and Information Management Asian Institute of Technology Matthew Dailey (CSIM-AIT) Patterns 1 / 193 Readings Readings

More information

Distributed KIDS Labs 1

Distributed KIDS Labs 1 Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database

More information

Software LEIC/LETI. Lecture 20

Software LEIC/LETI. Lecture 20 Software Engineering @ LEIC/LETI Lecture 20 Last Lecture Profiler and Debugger tools Offline concurrency patterns Presentation logic Services Domain logic Remote access Data access Remote Service Database

More information

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2 Introduction :- Today single CPU based architecture is not capable enough for the modern database that are required to handle more demanding and complex requirements of the users, for example, high performance,

More information

SQL: DML and Advanced Constructs Insert, Update, Delete, View, Index, Procedure, Transaction, Trigger

SQL: DML and Advanced Constructs Insert, Update, Delete, View, Index, Procedure, Transaction, Trigger Courses B0B36DBS, A7B36DBS: Database Systems Practical Class 08: SQL: DML and Advanced Constructs Insert, Update, Delete, View, Index, Procedure, Transaction, Trigger Martin Svoboda 11. 4. 2017 Faculty

More information

CS425 Fall 2016 Boris Glavic Chapter 1: Introduction

CS425 Fall 2016 Boris Glavic Chapter 1: Introduction CS425 Fall 2016 Boris Glavic Chapter 1: Introduction Modified from: Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Textbook: Chapter 1 1.2 Database Management System (DBMS)

More information

Course Outline and Objectives: Database Programming with SQL

Course Outline and Objectives: Database Programming with SQL Introduction to Computer Science and Business Course Outline and Objectives: Database Programming with SQL This is the second portion of the Database Design and Programming with SQL course. In this portion,

More information

Transactions. Juliana Freire. Some slides adapted from L. Delcambre, R. Ramakrishnan, G. Lindstrom, J. Ullman and Silberschatz, Korth and Sudarshan

Transactions. Juliana Freire. Some slides adapted from L. Delcambre, R. Ramakrishnan, G. Lindstrom, J. Ullman and Silberschatz, Korth and Sudarshan Transactions Juliana Freire Some slides adapted from L. Delcambre, R. Ramakrishnan, G. Lindstrom, J. Ullman and Silberschatz, Korth and Sudarshan Motivation Database systems are normally being accessed

More information

Daffodil DB. Design Document (Beta) Version 4.0

Daffodil DB. Design Document (Beta) Version 4.0 Daffodil DB Design Document (Beta) Version 4.0 January 2005 Copyright Daffodil Software Limited Sco 42,3 rd Floor Old Judicial Complex, Civil lines Gurgaon - 122001 Haryana, India. www.daffodildb.com All

More information

Dynamically build connection objects for Microsoft Access databases in SQL Server Integration Services SSIS

Dynamically build connection objects for Microsoft Access databases in SQL Server Integration Services SSIS Dynamically build connection objects for Microsoft Access databases in SQL Server Integration Services SSIS Problem As a portion of our daily data upload process, we receive data in the form of Microsoft

More information

Database Application Development Oracle PL/SQL, part 2. CS430/630 Lecture 18b

Database Application Development Oracle PL/SQL, part 2. CS430/630 Lecture 18b Database Application Development Oracle PL/SQL, part 2 CS430/630 Lecture 18b Murach Chapter 14 How to manage transactions and locking PL/SQL, C14 2014, Mike Murach & Associates, Inc. Slide 2 Objectives

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

What is Transaction? Why Transaction Management Required? JDBC Transaction Management in Java with Example. JDBC Transaction Management Example

What is Transaction? Why Transaction Management Required? JDBC Transaction Management in Java with Example. JDBC Transaction Management Example JDBC Transaction Management in Java with Example Here you will learn to implement JDBC transaction management in java. By default database is in auto commit mode. That means for any insert, update or delete

More information

Eternal Story on Temporary Objects

Eternal Story on Temporary Objects Eternal Story on Temporary Objects Dmitri V. Korotkevitch http://aboutsqlserver.com About Me 14+ years of experience working with Microsoft SQL Server Microsoft SQL Server MVP Microsoft Certified Master

More information

Plug-and-Analyze (PnA): An Integrated Framework for Architecture Tradeoff Analysis Tool Support

Plug-and-Analyze (PnA): An Integrated Framework for Architecture Tradeoff Analysis Tool Support Plug-and-Analyze (PnA): An Integrated Framework for Architecture Tradeoff Analysis Tool Support Ground Systems Architecture Workshop 2000 February 23-25, 2000 Hoh In (hohin@cs.tamu.edu) http://www.cs.tamu.edu/faculty/hohin

More information

Architecture of an Application Generator Short Public Version

Architecture of an Application Generator Short Public Version Architecture of an Application Generator Short Public Version May, 2007 By: Yaniv Hakim ewave ltd. Agenda Why application Generators? egen General Architecture Server Runtime Designer Question/Discussion

More information

Middle-Tier Database Caching for e-business

Middle-Tier Database Caching for e-business Discussion of Middle-Tier Database Caching for e-business Joon Wong System Testing IBM Toronto Lab Outline ƒ Limitations and Restrictions ƒ Counter Examples ƒ Performance Issues ƒ Experimental Results

More information

Course Logistics & Chapter 1 Introduction

Course Logistics & Chapter 1 Introduction CMSC 461, Database Management Systems Spring 2018 Course Logistics & Chapter 1 Introduction These slides are based on Database System Concepts book th edition, and the 2009 CMSC 461 slides by Dr. Kalpakis

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Summarize UML Deployment and Component notation. Design a framework with the Template Method, State, and Command patterns. Introduce issues in object-relational (O-R)

More information

Defining an ODBC data source

Defining an ODBC data source Defining an ODBC data source Cisco IPIVR and ICM Environment ALINEiT LLC alineit.com OVERVIEW This guideline document provides the steps needed to create an ODBC data source for the Cisco IPIVR application.

More information

SQL OVERVIEW. CS121: Relational Databases Fall 2017 Lecture 4

SQL OVERVIEW. CS121: Relational Databases Fall 2017 Lecture 4 SQL OVERVIEW CS121: Relational Databases Fall 2017 Lecture 4 SQL 2 SQL = Structured Query Language Original language was SEQUEL IBM s System R project (early 1970 s) Structured English Query Language Caught

More information

T-SQL Training: T-SQL for SQL Server for Developers

T-SQL Training: T-SQL for SQL Server for Developers Duration: 3 days T-SQL Training Overview T-SQL for SQL Server for Developers training teaches developers all the Transact-SQL skills they need to develop queries and views, and manipulate data in a SQL

More information

A Journey to DynamoDB

A Journey to DynamoDB A Journey to DynamoDB and maybe away from DynamoDB Adam Dockter VP of Engineering ServiceTarget Who are we? Small Company 4 Developers AWS Infrastructure NO QA!! About our product Self service web application

More information

Databases - Have it your way

Databases - Have it your way Databases - Have it your way Frederick Cheung - kgb fred@texperts.com http://www.spacevatican.org 1 kgb Operates a number of Directory Enquiry type products in several countries Runs the 542542 Ask Us

More information

Bottom line: A database is the data stored and a database system is the software that manages the data. COSC Dr.

Bottom line: A database is the data stored and a database system is the software that manages the data. COSC Dr. COSC 304 Introduction to Systems Introduction Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca What is a database? A database is a collection of logically related data for

More information

Lightweight J2EE Framework

Lightweight J2EE Framework Lightweight J2EE Framework Struts, spring, hibernate Software System Design Zhu Hongjun Session 4: Hibernate DAO Refresher in Enterprise Application Architectures Traditional Persistence and Hibernate

More information

How to speed up a database which has gotten slow

How to speed up a database which has gotten slow Triad Area, NC USA E-mail: info@geniusone.com Web: http://geniusone.com How to speed up a database which has gotten slow hardware OS database parameters Blob fields Indices table design / table contents

More information

UpBit: Scalable In-Memory Updatable Bitmap Indexing. Guanting Chen, Yuan Zhang 2/21/2019

UpBit: Scalable In-Memory Updatable Bitmap Indexing. Guanting Chen, Yuan Zhang 2/21/2019 UpBit: Scalable In-Memory Updatable Bitmap Indexing Guanting Chen, Yuan Zhang 2/21/2019 BACKGROUND Some words to know Bitmap: a bitmap is a mapping from some domain to bits Bitmap Index: A bitmap index

More information

DS Introduction to SQL Part 1 Single-Table Queries. By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford)

DS Introduction to SQL Part 1 Single-Table Queries. By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford) DS 1300 - Introduction to SQL Part 1 Single-Table Queries By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford) Overview 1. SQL introduction & schema definitions 2. Basic single-table

More information

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

COSC 304 Introduction to Database Systems. Database Introduction. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 304 Introduction to Database Systems Database Introduction Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca What is a database? A database is a collection of logically

More information

The InfoLibrarian Metadata Appliance Automated Cataloging System for your IT infrastructure.

The InfoLibrarian Metadata Appliance Automated Cataloging System for your IT infrastructure. Metadata Integration Appliance Times have changed and here is modern solution that delivers instant return on your investment. The InfoLibrarian Metadata Appliance Automated Cataloging System for your

More information

The DBMS accepts requests for data from the application program and instructs the operating system to transfer the appropriate data.

The DBMS accepts requests for data from the application program and instructs the operating system to transfer the appropriate data. Managing Data Data storage tool must provide the following features: Data definition (data structuring) Data entry (to add new data) Data editing (to change existing data) Querying (a means of extracting

More information

7. Query Processing and Optimization

7. Query Processing and Optimization 7. Query Processing and Optimization Processing a Query 103 Indexing for Performance Simple (individual) index B + -tree index Matching index scan vs nonmatching index scan Unique index one entry and one

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Outline The Need for Databases Data Models Relational Databases Database Design Storage Manager Query

More information

Mark Broadbent Principal Consultant SQLCloud SQLCLOUD.CO.UK

Mark Broadbent Principal Consultant SQLCloud SQLCLOUD.CO.UK lock, block & two smoking barrels Mark Broadbent Principal Consultant SQLCloud SQLCLOUD.CO.UK About Mark Broadbent. 30 billion times more intelligent than a live mattress Microsoft Certified Master/ Certified

More information

Introduction to Data Management CSE 344

Introduction to Data Management CSE 344 Introduction to Data Management CSE 344 Lecture 16: Constraints CSE 344 - Fall 2014 1 Announcements Sections tomorrow: XML. Quiz and next HW on XML posted soon, due next week after midterm HW 4 due tomorrow

More information

Introduction to Data Management CSE 344

Introduction to Data Management CSE 344 Introduction to Data Management CSE 344 Unit 7: Transactions Schedules Implementation Two-phase Locking (3 lectures) 1 Class Overview Unit 1: Intro Unit 2: Relational Data Models and Query Languages Unit

More information

Microsoft Developing SQL Databases. Download Full version :

Microsoft Developing SQL Databases. Download Full version : Microsoft 70-762 Developing SQL Databases Download Full version : http://killexams.com/pass4sure/exam-detail/70-762 QUESTION: 81 You have a database named DB1. There is no memory-optimized file group in

More information

1. Attempt any two of the following: 10 a. State and justify the characteristics of a Data Warehouse with suitable examples.

1. Attempt any two of the following: 10 a. State and justify the characteristics of a Data Warehouse with suitable examples. Instructions to the Examiners: 1. May the Examiners not look for exact words from the text book in the Answers. 2. May any valid example be accepted - example may or may not be from the text book 1. Attempt

More information

Using a DBMS. Shan-Hung Wu & DataLab CS, NTHU

Using a DBMS. Shan-Hung Wu & DataLab CS, NTHU Using a DBMS Shan-Hung Wu & DataLab CS, NTHU DBMS Database A database is a collection of your data stored in a computer A DBMS (DataBase Management System) is a software that manages databases 2 Outline

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Chapter 2: Intro. To the Relational Model Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Database Management System (DBMS) DBMS is Collection of

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.830 Database Systems: Fall 2008 Quiz II There are 14 questions and 11 pages in this quiz booklet. To receive

More information

Oracle 11g Optimizer Statistics Inderpal S. Johal. Inderpal S. Johal, Data Softech Inc.

Oracle 11g Optimizer Statistics   Inderpal S. Johal. Inderpal S. Johal, Data Softech Inc. ORACLE 11G DATABASE STATISTICS Inderpal S. Johal, Data Softech Inc. OVERVIEW Oracle 10g have made lots of significant change so as to provide good performance to Oracle database. The important changes

More information

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.)

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.) POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING Greenwich (74 w. long.) contents PART 1 1 preface xix acknowledgments xxi about this book xxiii about

More information

Database. Università degli Studi di Roma Tor Vergata. ICT and Internet Engineering. Instructor: Andrea Giglio

Database. Università degli Studi di Roma Tor Vergata. ICT and Internet Engineering. Instructor: Andrea Giglio Università degli Studi di Roma Tor Vergata Database ICT and Internet Engineering Instructor: Andrea Giglio andrea.giglio@uniroma2.it 1 Concurrency Concurrent execution of user programs is essential for

More information

G a l e r a C l u s t e r Schema Upgrades

G a l e r a C l u s t e r Schema Upgrades G a l e r a C l u s t e r Schema Upgrades Seppo Jaakola Codership Agenda Galera Cluster Overview DDL vs DML Demo of DDL Replication in Galera Cluster Rolling Schema Upgrade (RSU) Total Order Isolation

More information

COMP.3090/3100 Database I & II. Textbook

COMP.3090/3100 Database I & II. Textbook COMP.3090/3100 Database I & II Slides adapted from http://infolab.stanford.edu/~ullman/fcdb.html Prof. Cindy Chen cchen@cs.uml.edu September 7, 2017 Textbook Required: First Course in Database Systems,

More information

CSE 344 Final Review. August 16 th

CSE 344 Final Review. August 16 th CSE 344 Final Review August 16 th Final In class on Friday One sheet of notes, front and back cost formulas also provided Practice exam on web site Good luck! Primary Topics Parallel DBs parallel join

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

Scott Meder Senior Regional Sales Manager

Scott Meder Senior Regional Sales Manager www.raima.com Scott Meder Senior Regional Sales Manager scott.meder@raima.com Short Introduction to Raima What is Data Management What are your requirements? How do I make the right decision? - Architecture

More information

SQL (and MySQL) Useful things I have learnt, borrowed and stolen

SQL (and MySQL) Useful things I have learnt, borrowed and stolen SQL (and MySQL) Useful things I have learnt, borrowed and stolen MySQL truncates data MySQL truncates data CREATE TABLE pets ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, type CHAR(3) NOT NULL, PRIMARY KEY

More information

Oral Questions and Answers (DBMS LAB) Questions & Answers- DBMS

Oral Questions and Answers (DBMS LAB) Questions & Answers- DBMS Questions & Answers- DBMS https://career.guru99.com/top-50-database-interview-questions/ 1) Define Database. A prearranged collection of figures known as data is called database. 2) What is DBMS? Database

More information

Introduction to Database Systems CSE 414

Introduction to Database Systems CSE 414 Introduction to Database Systems CSE 414 Lecture 16: Constraints CSE 414 - Spring 2015 1 Announcements Reminders: Web quiz due Monday night XML homework due Wednesday night Today: Constraints (7.1, 7.2,

More information

Data Base Concepts. Course Guide 2

Data Base Concepts. Course Guide 2 MS Access Chapter 1 Data Base Concepts Course Guide 2 Data Base Concepts Data The term data is often used to distinguish binary machine-readable information from textual human-readable information. For

More information

Get Table Schema In Sql Server 2005 Modify. Column Datatype >>>CLICK HERE<<<

Get Table Schema In Sql Server 2005 Modify. Column Datatype >>>CLICK HERE<<< Get Table Schema In Sql Server 2005 Modify Column Datatype Applies To: SQL Server 2014, SQL Server 2016 Preview Specifies the properties of a column that are added to a table by using ALTER TABLE. Is the

More information

Sql Server Schema Update Join Multiple Tables In One Query

Sql Server Schema Update Join Multiple Tables In One Query Sql Server Schema Update Join Multiple Tables In One Query How to overcome the query poor performance when joining multiple times? How would you do the query to retrieve 10 different fields for one project

More information

How Oracle Does It. No Read Locks

How Oracle Does It. No Read Locks How Oracle Does It Oracle Locking Policy No Read Locks Normal operation: no read locks Readers do not inhibit writers Writers do not inhibit readers Only contention is Write-Write Method: multiversion

More information

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25 DATABASE TRANSACTIONS CS121: Relational Databases Fall 2017 Lecture 25 Database Transactions 2 Many situations where a sequence of database operations must be treated as a single unit A combination of

More information

Azure-persistence MARTIN MUDRA

Azure-persistence MARTIN MUDRA Azure-persistence MARTIN MUDRA Storage service access Blobs Queues Tables Storage service Horizontally scalable Zone Redundancy Accounts Based on Uri Pricing Calculator Azure table storage Storage Account

More information

DATABASES SQL INFOTEK SOLUTIONS TEAM

DATABASES SQL INFOTEK SOLUTIONS TEAM DATABASES SQL INFOTEK SOLUTIONS TEAM TRAINING@INFOTEK-SOLUTIONS.COM Databases 1. Introduction in databases 2. Relational databases (SQL databases) 3. Database management system (DBMS) 4. Database design

More information

John Edgar 2

John Edgar 2 CMPT 354 http://www.cs.sfu.ca/coursecentral/354/johnwill/ John Edgar 2 Assignments 30% Midterm exam in class 20% Final exam 50% John Edgar 3 A database is a collection of information Databases of one

More information

A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered

More information

SQL: Concepts. Todd Bacastow IST 210: Organization of Data 2/17/ IST 210

SQL: Concepts. Todd Bacastow IST 210: Organization of Data 2/17/ IST 210 SQL: Concepts Todd Bacastow IST 210: Organization of Data 2/17/2004 1 Design questions How many entities are there? What are the major entities? What are the attributes of each entity? Is there a unique

More information

Chapter 5 Managing the Data

Chapter 5 Managing the Data Chapter 5 Managing the Data The data stored in your PegaRULES database includes instances of rule, data, work, assignment, and all the other classes present in your Process Commander system. This chapter

More information

IBM Exam C DB2 9.5 SQL Procedure Developer Version: 3.0 [ Total Questions: 97 ]

IBM Exam C DB2 9.5 SQL Procedure Developer Version: 3.0 [ Total Questions: 97 ] s@lm@n IBM Exam C2190-735 DB2 9.5 SQL Procedure Developer Version: 3.0 [ Total Questions: 97 ] IBM C2190-735 : Practice Test Question No : 1 Given the statement shown below: SELECT ROW CHANGE TOKEN FOR

More information

Patterns Of Enterprise Application Architecture

Patterns Of Enterprise Application Architecture Patterns Of Enterprise Application Architecture Lecture 11-12 - Outlines Overview of patterns Web Presentation Patterns Base Patterns Putting It All Together References Domain Logic Patterns Domain Model

More information

Chapter 4. Adaptive Self-tuning : A Neural Network approach. 4.1 Introduction

Chapter 4. Adaptive Self-tuning : A Neural Network approach. 4.1 Introduction Chapter 4 Adaptive Self-tuning : A Neural Network approach 4.1 Introduction Machine learning is a method of solving real world problems by employing the hidden knowledge present in the past data or data

More information

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich Data Modeling and Databases Ch 14: Data Replication Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich Database Replication What is database replication The advantages of

More information

System Admin Manual <SNAPVALET> <Team No- 03>

System Admin Manual <SNAPVALET> <Team No- 03> System Admin Manual Name Brian Vanover Brian Bousman Ditong Ding Molly Karcher Patrick Horng Ridhima Manjrekar Role Project Manager, Developer Operational Concept Engineer, Developer

More information