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

Cassandra Summit: Data Modeling A Scheduling App

Embed Size (px)

Citation preview

Page 1: Cassandra Summit: Data Modeling A Scheduling App

Data Modeling A Scheduling Application

Adam Hutson Data Architect, DataScale Inc.

Page 2: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

Data Modeling Stages

Page 4: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Data Modeling Stages

7

Page 8: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Data Modeling Stages

8

Page 9: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Data Modeling Stages

9

Page 10: Cassandra Summit: Data Modeling A Scheduling App

Scheduling Application

Page 11: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

Conceptual Model

Page 13: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Conceptual Model

13

Page 14: Cassandra Summit: Data Modeling A Scheduling App

Logical Model

Page 15: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Logical Model

15

Page 16: Cassandra Summit: Data Modeling A Scheduling App

Desired Queries

Page 17: Cassandra Summit: Data Modeling A Scheduling App

© 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: Cassandra Summit: Data Modeling A Scheduling App

Physical Model

Page 19: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

19

Add new client information

Page 20: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

20

Add new client information

Page 21: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

21

Get client info by name or phone

Page 22: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

22

Get client info by name or phone

Page 23: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

23

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

Page 24: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

24

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

Page 25: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

25

Get all scheduled appointments for specified client name or phone

Page 26: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

26

Get all scheduled appointments for specified client name or phone

Page 27: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

27

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

Page 28: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

28

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

Page 29: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

29

Get all scheduled appointments for specified service technician

Page 30: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

30

Get all scheduled appointments for specified service technician

Page 31: Cassandra Summit: Data Modeling A Scheduling App

© DataStax, All Rights Reserved.

Physical Model

31

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

Page 32: Cassandra Summit: Data Modeling A Scheduling App

Thank You! Questions?

Adam Hutson @AdamHutson [email protected] @DataScaleInc