Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

32
Data Modeling A Scheduling Application Adam Hutson Data Architect, DataScale Inc.

Transcript of Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Page 1: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Data Modeling A Scheduling Application

Adam Hutson Data Architect, DataScale Inc.

Page 2: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Who am I & What do we do?

2

Adam Hutson Data Architect @ DataScale -> www.datascale.io DataStax MVP for Apache Cassandra DataScale provides hosted data platforms as a service Offering Cassandra & Spark, with more to come Currently hosted in Amazon & Azure

Page 3: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Data Modeling Stages

Page 4: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

• Maps concepts, relationships, & constraints

• Consists of entity classes with

characteristic attributes

• Nothing to do with a database

4

Page 5: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

• Maps concepts, relationships, & constraints

• Consists of entity classes with

characteristic attributes

• Nothing to do with a database

5

• Entities become tables

• Attributes become columns/

fields

• Relationships become key

• Entity Relationship Diagram

Page 6: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

• Maps concepts, relationships, & constraints

• Consists of entity classes with

characteristic attributes

• Nothing to do with a database

6

• Entities become tables

• Attributes become columns/

fields

• Relationships become key

• Entity Relationship Diagram

• Applies constraints of chosen database

• Table structure using syntax

• Data types, keys, relationships

Page 7: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

7

Page 8: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

8

Page 9: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Data Modeling Stages

9

Page 10: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Scheduling Application

Page 11: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Scheduling Application DefinitionWhat is it?

Application to schedule service appointments.

Who is it for? Any employee of the service company.

What does it do? Sets & retrieves appointments for service. Client/Service detail requests. Provider/Service detail requests. Services delivered/scheduled over time.

11

Page 12: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Conceptual Model

Page 13: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Conceptual Model

13

Page 14: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Logical Model

Page 15: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Logical Model

15

Page 16: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Desired Queries

Page 17: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Desired Queries

17

• Add new client information

• Get client info by name or phone

• Create appointment for specific date/time, client, service, & service technician

• Get all scheduled appointments for specified client name or phone

• Get all available times to schedule appointment for specified service & service technician

• Get all scheduled appointments for specified service technician

Page 18: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Physical Model

Page 19: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

19

Add new client information

Page 20: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

20

Add new client information

Page 21: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

21

Get client info by name or phone

Page 22: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

22

Get client info by name or phone

Page 23: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

23

Create appointment for specific date/time, client, service, & service technician

Page 24: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

24

Create appointment for specific date/time, client, service, & service technician

Page 25: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

25

Get all scheduled appointments for specified client name or phone

Page 26: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

26

Get all scheduled appointments for specified client name or phone

Page 27: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

27

Get all available times to schedule appointment for specified service & service technician

Page 28: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

28

Get all available times to schedule appointment for specified service & service technician

Page 29: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

29

Get all scheduled appointments for specified service technician

Page 30: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

30

Get all scheduled appointments for specified service technician

Page 31: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

© DataStax, All Rights Reserved.

Physical Model

31

End Product: A complete script to create your entire Data Model in Cassandra

Page 32: Data Modeling a Scheduling App (Adam Hutson, DataScale) | Cassandra Summit 2016

Thank You! Questions?

Adam Hutson @AdamHutson [email protected] @DataScaleInc