SlideShare a Scribd company logo
1 of 75
Download to read offline
The Art and Science of DDS
Data Modelling
Angelo Corsaro, PhD
Chief Technology Officer
OMG DDS SIG Co-Chair
angelo.corsaro@prismtech.com

PrismTech
A Recurring Question
• People new to DDS recurrently ask a question: what are the techniques and
• My answer is usually: Start with the powerful tools and techniques provided
by relational data modelling and then add some DDS-specific spice

• I’ve come to the conclusion that many people are not very familiar with
relational data modelling, or perhaps it is way too long that they have
studied/reviewed these concepts

• This webcast, will provide a relatively well introduction to the relational
data model

PrismTech

Copyright PrismTech, 2014

patterns that we can use to design DDS-based Systems?
The Relational Model
• Introduced by Edward Codd in 1970 as a way of representing data models
for Data Bases

• Simple and Elegant: A database becomes a collections of one or more
relations where each relation is a table with rows and columns

PrismTech

Copyright PrismTech, 2014

Relational Model
Relation
it consists of two dimensional table

• The columns of a relation are called attributes
• The name of the relation along with the set of attributes defines the relation
schema

• The rows of the relation, other than the header containing the attribute
names, are called tuples

PrismTech

Copyright PrismTech, 2014

• The relation is the construct used representing data in the relational model,
Relation’s Schema

-

relation’s name

-

the name of each field/attribute, e.g. column

-

the domain of each field, e.g. the type of the field
!

• Example:
-­‐

PrismTech

Student(sid:	
  string,	
  name:	
  string,	
  age:	
  integer,	
  gpa:	
  real)

Copyright PrismTech, 2014

• The relation schema specifies:
Tuples
• An instance of a relation is a set of tuples (records) in which each tuple has the same
number of fields as in the relation schema.

rows have the same number of fields (columns)
!

sid
!
!
!

name

age

gpa

1234

Peter Parker

21

4.0

2345
3456

Tony Stark
Bruce Wayne

15
23

4.0
3.5

• Notice that rows are all different. This is a requirement of the relational model, as a
relation instance is a collection of unique tuples (or rows)

PrismTech

Copyright PrismTech, 2014

• A relation’s instance can be visualised as table where each tuple is a row and all
• The cardinality of a relation R is defined as the number of tuples belonging
to the relation

• The degree, or arity, of a relation R is defined as the number of its fields

PrismTech

Copyright PrismTech, 2014

Cardinality and Degree
Keys

• A superkey is a set of attributes that includes the primary key
• Example:
-

The sid field is the key for the Students relations

sid
1234
2345
3456
PrismTech

name
Peter Parker
Tony Stark
Bruce Wayne

age
21
15
23

gpa
4.0
4.0
3.5

Copyright PrismTech, 2014

• The key of a relation is a set of fields that uniquely identifies a tuple
• A foreign key allows to introduce a link between two relations
• For instance, the sid in the Courses relation is a foreign key allow to refer as
well as introduce an integrity constraint to the students relations
Courses
cid
sid grade
Physics303 1234 A+
Robotics323 2345 A+
Calculus343 2345 A

PrismTech

Students
sid
1234
2345
3456

name
Peter Parker
Tony Stark
Bruce Wayne

age
21
15
23

gpa
4.0
4.0
3.5

Copyright PrismTech, 2014

Foreign Keys
Quick DDS Intro
• DDS provides a Global Data Space
abstraction that allow applications
to autonomously, anonymously,
securely and efficiently share data

• DDS’ Global Data Space is fully
distributed, highly efficient and
scalable

PrismTech

Copyright PrismTech, 2014

Data Distribution Service (DDS)
• DataWriters and DataReaders are
automatically and dynamically
matched by the DDS Discovery

• A rich set of QoS allows to control
existential, temporal, and spatial
properties of data

PrismTech

Copyright PrismTech, 2014

Data Distribution Service (DDS)
Information Definition
Topic

Copyright PrismTech, 2014

• A Topic defines a domain-wide information’s class
• A Topic is defined by means of a (name, type,
qos) tuple, where
-

type: is the programming language type associated
with the topic. Types are extensible and evolvable

Name

-

qos: is a collection of policies that express the nonfunctional properties of this topic, e.g. reliability,
persistence, etc.

Topic

e

PrismTech

Qo
S

name: identifies the topic within the domain

Typ

-
Topic and Instances
• As explained in the previous slide a topic defines a class/type of information

• Topic Instances are identified by means of the topic key
• A Topic Key is identified by a tuple of attributes -- like in databases
• Remarks:
-

PrismTech

A Singleton topic has a single domain-wide instance
A “regular” Topic can have as many instances as the number of different key
values, e.g., if the key is an 8-bit character then the topic can have 256 different
instances

Copyright PrismTech, 2014

• Topics can be defined as Singleton or can have multiple Instances
• IDL is the most commonly used syntax

Topic

• Example:
struct	
  Student	
  {	
  
	
  	
  	
  long	
  	
  	
  	
  sid;	
  
	
  	
  	
  string	
  	
  name;	
  
	
  	
  	
  int	
  	
  	
  	
  	
  age;	
  
	
  	
  	
  float	
  	
  	
  gpa;	
  
};	
  
#pragma	
  keylist	
  Student	
  sid	
  
	
  	
  	
  
PrismTech

Qo
S

Name
e
Typ

• A Topic type can be defined in different syntaxes

Copyright PrismTech, 2014

Topic Example
Topics as Relations

struct	
  Student	
  {	
  
	
  	
  	
  long	
  	
  	
  	
  sid;	
  
	
  	
  	
  string	
  	
  name;	
  
	
  	
  	
  int	
  	
  	
  	
  	
  age;	
  
	
  	
  	
  float	
  	
  	
  gpa;	
  
};	
  
#pragma	
  keylist	
  Student	
  sid	
  
	
  	
  	
  

Student(sid, name, age, gpa)
name

age

gpa

1234

Peter Parker

21

4.0

2345
3456

PrismTech

sid

Tony Stark
Bruce Wayne

15
23

4.0
3.5

Copyright PrismTech, 2014

• A Topic cans be seen as defining a relation
• Topics Types => Relation Schema
• Topic Instance => Key
• Topic Sample => Tuple

PrismTech

Copyright PrismTech, 2014

Mapping DDS to the Relational Model
• Start identifying corse relations and properties of data
• Start decomposing based on properties
• Apply a normal form
-

PrismTech

Functional Dependencies => Boyce-Codd Normal Form
Multivalued Dependencies => Fourth Normal Form

Copyright PrismTech, 2014

Relational Design
UML Data Modelling
UML Data Modelling
• A subset of UML can be used to model Data Models
• The resulting model can be easily translated into a relational model and the used
• The allowed subset of UML are:
-

Classes (with only attributes)

-

Associations

-

Association Classes

-

Subclasses

-

Composition and Aggregation

• UML Data Models can be automatically translated into relational model as far as
each “regular” class defines a primary key

PrismTech

Copyright PrismTech, 2014

in a DBMS or DDS
Class
• A UML class is mapped to a relation that has the same name of the class,

Student
sid: int
name: string
age: int
gpa: float

PrismTech

Copyright PrismTech, 2014

shares its key and attributes

Student(sid, name, age, gpa)
• By default association can be mapped as follows, yet, depending on the

multiplicity of the association different mappings may be possible/desirable
!

!

C1
K1: PK
O1

A

C2
K2: PK
O2

C1(K1, O1)
C2(K2, O2)

A(K1,K2)

!

• The key definition in the association depends on the multiplicity
PrismTech

Copyright PrismTech, 2014

Association
1-to-many Association
M1 Use a relation to capture the association
M2 Embed the association on the many side of the association

C1
K1: PK
O1

PrismTech

0..1

A

C2
* K2: PK
O2

M1 C1(K1, O1), C2(K2, O2), A(K1, K2)
M2 C1(K1, O1), C2(K2, O2, K1)

Copyright PrismTech, 2014

There are two ways of mapping a 1-to-many association to the relational
model
C1
K1: PK
O1

PrismTech

*

A

C2
* K2: PK
O2

C1(K1, O1)
C2(K2, O2)

A(K1,K2)

Copyright PrismTech, 2014

many-to-many Associations
Relationships arity
K2

K2

K1

K2

Copyright PrismTech, 2014

K1

K1

PrismTech

One to Many

Many to Many

Key = K2

One to One

Key = K1, K2
C1
K1: PK
O1

A

C2
K2: PK
O2

C1(K1, O1)
C2(K2, O2)

Association
A

PrismTech

A(K1,K2, a1, a2)

Copyright PrismTech, 2014

Association Classes
tsdotd14

Self Association
• Self association are modelled as traditional relations, which the only

Student
sid: int
name: string
age: int
gpa: float
*

PrismTech

Student(sid, name, age, gpa)
Sibling(sidParent, sidSibling)

*
Slbling

Copyright PrismTech, 2014

difference that attributes mau be conserved
Subclasses
Three ways of mapping subclassing to the relational model

T2 Subclass relations contain all attributes
T3 One relation containing all superclass and subclass attributes
A
K: PK
X

T1 A(K, X), B(K, Y), C(K, Z)
T2 A(K, X), B(K, X, Y), C(K, X, Z)

B
Y

C
Z

T3 A(K, X, Y, Z)

The best translation may depend on the the context, e.g. T3 good for heavily
overlapping subclasses, T2 good for disjoint and complete subclasses
PrismTech

Copyright PrismTech, 2014

T1 Subclass relations contain the superclass key and the specialised attributes
Composition and Aggregation
• The precondition to easily map composition to the relational model is for

Whole
K: PK
W

Part
P

Whole(K, W)

Part(P, K)

• When mapping aggregation (unfilled diamond), the key K on the Part
should have a domain that allows for null values

PrismTech

Copyright PrismTech, 2014

the part not to have a key
• A subset of UML can be used to model relational data models
• The mapping rules can be used to help translating existing Object Oriented
data models into their relational counter-part

PrismTech

Copyright PrismTech, 2014

Summing Up
Refinement
Why Relation Refinement?
• The UML/ER Data Models provide usually a good starting point toward the
• The relations implied by the UML/ER Data Model often need to be

normalised and re-organised to address performances and workload criteri

• The goal of relation refinements is to remove redundancy and/or
decompose a relation with smaller relations

• Normal forms provide a way of measuring the amount of redundancy that
may be in our data model

PrismTech

Copyright PrismTech, 2014

data model that we’ll actually use in the system
Redundancy
• Redundant Storage: Information may be stored multiple times leading to
• Update Anomalies: If one copy of the redundant information is update this

may create inconsistencies in other copies — unless all copies are updated
at the same time

• Insertion Anomalies: It may not be possible to store some information,
unless some other information is stored as well

• Deletion Anomalies: It may not be possible to delete some information
without loosing som other information as well

PrismTech

Copyright PrismTech, 2014

space, and perhaps time, inefficiencies
Decomposition
• Unconsidered decomposition can lead more problems than benefits, thus
-

You really need to decompose the relation

-

You fully understand the implications of the decomposition (lossless join,
dependency preservation)

• Normal Forms provide good guidelines for relations decompositions as they
guarantees that certain class of problems cannot be introduced

• Notice that decomposition can have a performance impact as it may
lead to an increase in joins

PrismTech

Copyright PrismTech, 2014

when decomposing you always want to ensure that:
Functional Dependencies
• A Functional Dependency (FD) is a kind of Integrity Constraint (IC) that
• Given a relation R along with two nonempty sets of attributes X and Y in R,
we say that R satisfies the FD X ⟶ Y if the following holds for every pair of
tuples t1 and t2 in R:
!

if t1.X = t2.X then t1.Y = t2.Y

• In other terms, the FD says that if two tuple agree on the set of attributes on
X they also agree on the set of attributes in Y

• Notice that a primary key constraint is a special kind of FD
PrismTech

Copyright PrismTech, 2014

generalises the concept of a key
Example
percentile of the student GPA, e.g. which percentage of students has a GPA that is
smaller of equal
!

sid
!
!

name

age

gpa

percentile

1234

Peter Parker

21

4.0

100

2345
Tony Stark
3456 Bruce Wayne

15
23

4.0
3.5

100
75

!

• Clearly we have that the percentile attribute functionally depends on gpa, or
equivalently gpa ⟶ percentile

PrismTech

Copyright PrismTech, 2014

• Let’s assume our Student relation now includes a new attribute that measure the
Normal Forms
Normal Forms
• Different Normal Forms (NF) exist that provide guidance on how to decompose
• If a relation is in a given normal form then we are guarantees that some
anomalies cannot arise, e.g. update anomaly, etc.

• The normal forms based on functional dependencies are the first normal form

(1FN), second normal form (2FN), third normal form (3NF) and the Boyce-Codd
normal form (BCNF)

• Every relation in BCNF is also in 3NF, every relation in 3FN is also in 2FN and finally
every relation in 2NF is also in 1NF

• The 2NF and 3NF have only historical interest, while the BCNF has important
practical applicability

PrismTech

Copyright PrismTech, 2014

relations
• A relation is in 1NF if every field contains only atomic values, that is not lists,
or sets

PrismTech

Copyright PrismTech, 2014

1NF
Boyce-Codd Normal Form (BCNF)
Let R be a relation, X a subset of attributes of R and a an attribute of R. R is in Boyce-Codd
Normal Form (BCNF) if for every FD: X ⟶ {a} that holds over R, one of the following is true:

Copyright PrismTech, 2014

• a ∊ X, that is it is a trivial FD, or
• X is a superkey
!

Intuitively, in a BCNF relation the only nontrivial dependencies are those in which a key
determines some attributes. Each attribute must describe the key, the whole key, and
nothing but the key
key

attr 1

attr 2

Functional Dependencies in BCNF

PrismTech

attr k
BCNF Decomposition Algorithm
Input: relation R and FDs for R

Compute Keys for R
Repeat until all relations are in BCNF
Choose a relation Ri with A ⟶ B that violates BCNS
Decompose Ri into R1(A, B) and R2(A, rest)
Compute FDs for R1 and R2
Compute Keys for R1 and R2

PrismTech

Copyright PrismTech, 2014

Output: decomposition of R into BCNF relations with lossless join
3NF

• a ∊ X, that is it is a trivial FD, or
• X is a superkey, or
• a is part of some key for R
The definition of 3NF is similar to that of BCNF, with the difference that a may
be part of a key for R

PrismTech

Copyright PrismTech, 2014

Let R be a relation schema, X a subset of attributes of R and a an attribute of
R. R is in Third Normal Form if for every FD: X ⟶ {a} that holds over R, one of
the following is true:
Multivalued Dependencies
• For a relation R we say that A ↠ B (A multi-determines B), where A and B
!

!

!

∀ t,u ∈ R: t.A = u.A then ∃ v ∈ R:
v.A = t.A and
v.B = t.B and
v.rest = u.rest

!

• Multivalued dependencies are sometimes called tuple-generating
dependencies

PrismTech

Copyright PrismTech, 2014

are sets of fields in R, if:
• A relation R with multivalued dependencies (MVD) is in 4NF if for each nontrivial A ↠ B, A is a key

• The 4NF implies the BCNF

PrismTech

Copyright PrismTech, 2014

Fourth Normal Form (4NF)
4NF Decomposition Algorithm
Output: decomposition of R into 4NF relations with lossless join
Compute Keys for R
Repeat until all relations are in 4NF
Choose a relation Ri with a nontrivial A ↠ B that violates 4NF
Decompose Ri into R1(A, B) and R2(A, rest)
Compute FDs and MVDs for R1 and R2
Compute Keys for R1 and R2

PrismTech

Copyright PrismTech, 2014

Input: relation R and FDs and MVDs for R
• Dependency enforcement may require joins
• Query workload — due to excessive joins
• Over-decomposition

PrismTech

Copyright PrismTech, 2014

Shortcomings of BCNF and 4NF
Relational Algebra
Selection and Projection
• Relational algebra provides operators to select rows (σ) an to project
columns from a relation (π)

Copyright PrismTech, 2014

• These operation allow to operate on a single relation
Examples:
σage<20 (Student)

Student
sid

name

1234 Peter Parker

age gpa
21

4.0

2345 Tony Stark
15
3456 Bruce Wayne 23

4.0
3.5

PrismTech

sid
name
2345 Tony Stark

age gpa
15 4.0

πname,gpa(Student)
name

gpa

Peter Parker 4.0
Tony Stark 4.0
Bruce Wayne 3.5
• Join is one of the most useful operator in relational algebra and is most

commonly used to combine/reassemble information from two or more
relations

• Join is conceptually a cross product followed by a selection and projection

PrismTech

Copyright PrismTech, 2014

Joins
• Condition joins are the most general form of joins. This operation takes a
condition and two relations and is defined as follows:
R ⋈c C = σc(RxS)

PrismTech

Copyright PrismTech, 2014

Condition Joins
• Equijoin is a special case of the Condition Join, where the condition
predicates on attribute equality

PrismTech

Copyright PrismTech, 2014

Equijoin
• A Natural Join is a special Equijoin that operates on all the attributes having
the same name in R and S

PrismTech

Copyright PrismTech, 2014

Natural Join
Back to DDS
Relational Design in DDS

• Start decomposing based on properties (can use UML for this)
• Apply a normal form
-

Functional Dependencies => Boyce-Codd Normal Form

-

Multivalued Dependencies => Fourth Normal Form

• Define QoS for the resulting relations and further decompose if you incur in
some QoS Mix (more later)

PrismTech

Copyright PrismTech, 2014

• Start identifying corse relations and properties of data
• DDS Supports:
-

Selection for a given Topic DDS queries and filters

-

Conditional Joins across multiple Topics via the Multi-Topics

• DDS uses a subset of SQL-92 to express selections, projections and joins

PrismTech

Copyright PrismTech, 2014

Relational Algebra
• In some instances you may find that a topic (relation) R has two disjoint sets
of attribute X and Y that have conflicting temporal, reliability or durability
requirements

• In this case this relation has to be further decomposed

PrismTech

Copyright PrismTech, 2014

DDS Specific Decomposition
Frequency Mix
• Suppose you have a relation R(K, X,Y) were the set of attributes X changes
• In this case you should decompose the relation R into:
!

R1(K, X), R2(K, Y)

!

• This will reduce the resource usage in your system, e.g. bandwidth as well

as CPU but may introduce consistency issues. If consistency is essential then
coherent updates should be used to atomically update R1 and R2

PrismTech

Copyright PrismTech, 2014

far more frequently than the set of attributes Y (e.g. position, vs. velocity)
Reliability Mix
some soft-state.

• In this case you should decompose the relation R into:
!

R1(K, X), R2(K, Y)

!

• This decomposition allows to only use reliable distribution for R1 and besteffort for R2 thus reducing resource usage in the system

PrismTech

Copyright PrismTech, 2014

• Suppose you have a relation R(K, X,Y) were the set of attributes Y represent
Durability Mix
a different durability than the set of attributes Y, e.g. X need sto be
persistent while Y volatile

• In this case you should decompose the relation R into:
!

R1(K, X), R2(K, Y)

!

• This will reduce the resource usage in your system and reduce the pressure
on the Durability Service

PrismTech

Copyright PrismTech, 2014

• Suppose you have a relation R(K, X,Y) were the set of attributes X requires
Summing Up
Concluding Remarks
• The relational model provides the right set of tools for designing DDS-based
• DDS Topics are relations and DDS supports a subset of relational algebra to
manipulate these relations (topics)

• The design process is as follows:
-

Ensure your model is in BCNF or 4NF — make sure your understand why some
violations are necessary/desirable for your system

-

Add QoS to your relations

-

PrismTech

Start modelling your system using the UML Data Modelling subset

Evaluate if further decomposition is required due to QoS mixes — if your data
model is properly normalised

Copyright PrismTech, 2014

systems
Learn More…
• A First Course in Database Systems (3rd edition), Ullman and Widom
• Database Management Systems (3rd edition), Ramakrishnan and Gehrke

PrismTech

Copyright PrismTech, 2014

Books
• Jennifer Widom, Stanfords, Introduction to Databases
-

PrismTech

A very very good course on Databases in general and specifically on relational
data modelling

Copyright PrismTech, 2014

coursera.org
Extras
ER Modelling
• Relational Data Models are commonly expressed using, some variation of,
Entity-Relationship (ER) Data Models

• The ER Data Model is built around the concepts of entities, attributes and
relationships (not to be confused with relations!)

PrismTech

Copyright PrismTech, 2014

Entity Relationship(ER) Data Model
Entities, Attributes and Entity Sets
• An entity is an object in the real world that is distinguishable from other
-

e.g. the iPhone, the Samsumg Galaxy Note, etc.

• An entity is described through a set of attributes
• An entity set identifies a collections of similar entities
-

e.g., Mobile Phones

• Each attribute associated with an entity set must identify its domain
• An entity has a primary key and potentially several candidate keys
PrismTech

Copyright PrismTech, 2014

objects
Mapping

name

age

sid

gpa

Student

Student Entity Set

PrismTech

sid
1234
2345
3456

name
Peter Parker
Tony Stark
Bruce Wayne

age
21
15
23

Student Entity Set

gpa
4.0
4.0
3.5

Copyright PrismTech, 2014

• An entity set is mapped to a relation
• A relationship is an association between two or more entities
-

e.g., a student is enrolled in a course

• A relationship can have descriptive attribute to record information about a
relationship

PrismTech

Copyright PrismTech, 2014

Relationships
Mapping
• The attributes of the resulting relation are:
-

the primary key of each participating entity as foreign keys

-

descriptive attributes as fields of the relation

• The primary key of the resulting relations depends on arity of the
relationship

PrismTech

Copyright PrismTech, 2014

• A relationship Set is mapped to a relation
Entity Hierarchies
• In some cases it is natural to introduce (type)

name

Copyright PrismTech, 2014

ssn

Employees

hierarchies among entities

• These hierarchies are represented through
the ISA relationship

hoursWorked

ISA

contractId
hourlyWages

HourlyEmpls

PrismTech

ContractEmpls
ISA relationships can be mapped into two ways

• Map each entity to a distinct relation
• Create only relations for the concrete types
Notice that while the first approach is always applicable, the second is not

PrismTech

Copyright PrismTech, 2014

Mapping

More Related Content

What's hot

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsAngelo Corsaro
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsReal-Time Innovations (RTI)
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo Corsaro
 
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...IncQuery Labs
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part IIAngelo Corsaro
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollerseProsima
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsReal-Time Innovations (RTI)
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 

What's hot (20)

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial SystemsThe Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
 
Connext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 OverviewConnext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 Overview
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Introduction to RTI DDS
Introduction to RTI DDSIntroduction to RTI DDS
Introduction to RTI DDS
 

Viewers also liked

10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDSAngelo Corsaro
 
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...Gerardo Pardo-Castellote
 
Highland-March Office Business Centers Overview
Highland-March Office Business Centers OverviewHighland-March Office Business Centers Overview
Highland-March Office Business Centers Overviewkimlibby
 
Corporate Fact Finder
Corporate Fact FinderCorporate Fact Finder
Corporate Fact Finderericmaher
 
比較の表し方(3)
比較の表し方(3)比較の表し方(3)
比較の表し方(3)shingokeihoku
 
Cyberpolitics 2009 W11
Cyberpolitics 2009 W11Cyberpolitics 2009 W11
Cyberpolitics 2009 W11oiwan
 
Iasb Expert Advisory Panel October 2008
Iasb Expert Advisory Panel October 2008Iasb Expert Advisory Panel October 2008
Iasb Expert Advisory Panel October 2008guest31db2
 
Pharm Collaborations Cbi Pres
Pharm Collaborations Cbi PresPharm Collaborations Cbi Pres
Pharm Collaborations Cbi Presthess1121
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notessad asad
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingFaye Brownlie
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013XXX XXX
 
Case Study
Case StudyCase Study
Case Studyfagancc
 
ISA Corporate Presentation
ISA Corporate PresentationISA Corporate Presentation
ISA Corporate PresentationPrashant Gandhi
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Conguest29922
 
Vision for Haverhill Comprehensive Plan Concept & Framework
Vision for Haverhill Comprehensive Plan Concept & FrameworkVision for Haverhill Comprehensive Plan Concept & Framework
Vision for Haverhill Comprehensive Plan Concept & FrameworkJohn Michitson
 

Viewers also liked (20)

10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS
 
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...
DDS Security: A Security Model Suitable for Net-Centric for Pub-Sub and Data ...
 
Highland-March Office Business Centers Overview
Highland-March Office Business Centers OverviewHighland-March Office Business Centers Overview
Highland-March Office Business Centers Overview
 
Corporate Fact Finder
Corporate Fact FinderCorporate Fact Finder
Corporate Fact Finder
 
比較の表し方(3)
比較の表し方(3)比較の表し方(3)
比較の表し方(3)
 
Cyberpolitics 2009 W11
Cyberpolitics 2009 W11Cyberpolitics 2009 W11
Cyberpolitics 2009 W11
 
Iasb Expert Advisory Panel October 2008
Iasb Expert Advisory Panel October 2008Iasb Expert Advisory Panel October 2008
Iasb Expert Advisory Panel October 2008
 
Pharm Collaborations Cbi Pres
Pharm Collaborations Cbi PresPharm Collaborations Cbi Pres
Pharm Collaborations Cbi Pres
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notes
 
Active Channel
Active ChannelActive Channel
Active Channel
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about Thinking
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013
 
Er Verbs
Er VerbsEr Verbs
Er Verbs
 
Case Study
Case StudyCase Study
Case Study
 
ISA Corporate Presentation
ISA Corporate PresentationISA Corporate Presentation
ISA Corporate Presentation
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Con
 
Simplethings
SimplethingsSimplethings
Simplethings
 
Vision for Haverhill Comprehensive Plan Concept & Framework
Vision for Haverhill Comprehensive Plan Concept & FrameworkVision for Haverhill Comprehensive Plan Concept & Framework
Vision for Haverhill Comprehensive Plan Concept & Framework
 
IKH331-01-pendahuluan
IKH331-01-pendahuluanIKH331-01-pendahuluan
IKH331-01-pendahuluan
 
Egipto
EgiptoEgipto
Egipto
 

Similar to The Art and Science of DDS Data Modelling

Data Structures and Algorithm - Week 4 - Trees, Binary Trees
Data Structures and Algorithm - Week 4 - Trees, Binary TreesData Structures and Algorithm - Week 4 - Trees, Binary Trees
Data Structures and Algorithm - Week 4 - Trees, Binary TreesFerdin Joe John Joseph PhD
 
Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Dios Kurniawan
 
Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Getachew Ganfur
 
C++ Programming Course
C++ Programming CourseC++ Programming Course
C++ Programming CourseDennis Chang
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdataFraboni Ec
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdataJames Wong
 
OODBMS Concepts - National University of Singapore.pdf
OODBMS Concepts - National University of Singapore.pdfOODBMS Concepts - National University of Singapore.pdf
OODBMS Concepts - National University of Singapore.pdfssuserd5e338
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...Jean Ihm
 
Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016IXIASOFT
 
Mdst3703 2013-09-12-semantic-html
Mdst3703 2013-09-12-semantic-htmlMdst3703 2013-09-12-semantic-html
Mdst3703 2013-09-12-semantic-htmlRafael Alvarado
 

Similar to The Art and Science of DDS Data Modelling (20)

Sachin noire 2024
Sachin noire 2024Sachin noire 2024
Sachin noire 2024
 
Data Structures and Algorithm - Week 4 - Trees, Binary Trees
Data Structures and Algorithm - Week 4 - Trees, Binary TreesData Structures and Algorithm - Week 4 - Trees, Binary Trees
Data Structures and Algorithm - Week 4 - Trees, Binary Trees
 
Database Systems - Lecture Week 1
Database Systems - Lecture Week 1Database Systems - Lecture Week 1
Database Systems - Lecture Week 1
 
Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02
 
C++ Programming Course
C++ Programming CourseC++ Programming Course
C++ Programming Course
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
Xml and webdata
Xml and webdataXml and webdata
Xml and webdata
 
OODBMS Concepts - National University of Singapore.pdf
OODBMS Concepts - National University of Singapore.pdfOODBMS Concepts - National University of Singapore.pdf
OODBMS Concepts - National University of Singapore.pdf
 
RDBMS Model
RDBMS ModelRDBMS Model
RDBMS Model
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
oodb.ppt
oodb.pptoodb.ppt
oodb.ppt
 
Ordbms
OrdbmsOrdbms
Ordbms
 
Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016Reports and DITA Metrics IXIASOFT User Conference 2016
Reports and DITA Metrics IXIASOFT User Conference 2016
 
Mdst3703 2013-09-12-semantic-html
Mdst3703 2013-09-12-semantic-htmlMdst3703 2013-09-12-semantic-html
Mdst3703 2013-09-12-semantic-html
 
2 rel-algebra
2 rel-algebra2 rel-algebra
2 rel-algebra
 

More from Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 

More from Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

The Art and Science of DDS Data Modelling

  • 1. The Art and Science of DDS Data Modelling Angelo Corsaro, PhD Chief Technology Officer OMG DDS SIG Co-Chair angelo.corsaro@prismtech.com PrismTech
  • 2. A Recurring Question • People new to DDS recurrently ask a question: what are the techniques and • My answer is usually: Start with the powerful tools and techniques provided by relational data modelling and then add some DDS-specific spice • I’ve come to the conclusion that many people are not very familiar with relational data modelling, or perhaps it is way too long that they have studied/reviewed these concepts • This webcast, will provide a relatively well introduction to the relational data model PrismTech Copyright PrismTech, 2014 patterns that we can use to design DDS-based Systems?
  • 4. • Introduced by Edward Codd in 1970 as a way of representing data models for Data Bases • Simple and Elegant: A database becomes a collections of one or more relations where each relation is a table with rows and columns PrismTech Copyright PrismTech, 2014 Relational Model
  • 5. Relation it consists of two dimensional table • The columns of a relation are called attributes • The name of the relation along with the set of attributes defines the relation schema • The rows of the relation, other than the header containing the attribute names, are called tuples PrismTech Copyright PrismTech, 2014 • The relation is the construct used representing data in the relational model,
  • 6. Relation’s Schema - relation’s name - the name of each field/attribute, e.g. column - the domain of each field, e.g. the type of the field ! • Example: -­‐ PrismTech Student(sid:  string,  name:  string,  age:  integer,  gpa:  real) Copyright PrismTech, 2014 • The relation schema specifies:
  • 7. Tuples • An instance of a relation is a set of tuples (records) in which each tuple has the same number of fields as in the relation schema. rows have the same number of fields (columns) ! sid ! ! ! name age gpa 1234 Peter Parker 21 4.0 2345 3456 Tony Stark Bruce Wayne 15 23 4.0 3.5 • Notice that rows are all different. This is a requirement of the relational model, as a relation instance is a collection of unique tuples (or rows) PrismTech Copyright PrismTech, 2014 • A relation’s instance can be visualised as table where each tuple is a row and all
  • 8. • The cardinality of a relation R is defined as the number of tuples belonging to the relation • The degree, or arity, of a relation R is defined as the number of its fields PrismTech Copyright PrismTech, 2014 Cardinality and Degree
  • 9. Keys • A superkey is a set of attributes that includes the primary key • Example: - The sid field is the key for the Students relations sid 1234 2345 3456 PrismTech name Peter Parker Tony Stark Bruce Wayne age 21 15 23 gpa 4.0 4.0 3.5 Copyright PrismTech, 2014 • The key of a relation is a set of fields that uniquely identifies a tuple
  • 10. • A foreign key allows to introduce a link between two relations • For instance, the sid in the Courses relation is a foreign key allow to refer as well as introduce an integrity constraint to the students relations Courses cid sid grade Physics303 1234 A+ Robotics323 2345 A+ Calculus343 2345 A PrismTech Students sid 1234 2345 3456 name Peter Parker Tony Stark Bruce Wayne age 21 15 23 gpa 4.0 4.0 3.5 Copyright PrismTech, 2014 Foreign Keys
  • 12. • DDS provides a Global Data Space abstraction that allow applications to autonomously, anonymously, securely and efficiently share data • DDS’ Global Data Space is fully distributed, highly efficient and scalable PrismTech Copyright PrismTech, 2014 Data Distribution Service (DDS)
  • 13. • DataWriters and DataReaders are automatically and dynamically matched by the DDS Discovery • A rich set of QoS allows to control existential, temporal, and spatial properties of data PrismTech Copyright PrismTech, 2014 Data Distribution Service (DDS)
  • 15. Topic Copyright PrismTech, 2014 • A Topic defines a domain-wide information’s class • A Topic is defined by means of a (name, type, qos) tuple, where - type: is the programming language type associated with the topic. Types are extensible and evolvable Name - qos: is a collection of policies that express the nonfunctional properties of this topic, e.g. reliability, persistence, etc. Topic e PrismTech Qo S name: identifies the topic within the domain Typ -
  • 16. Topic and Instances • As explained in the previous slide a topic defines a class/type of information • Topic Instances are identified by means of the topic key • A Topic Key is identified by a tuple of attributes -- like in databases • Remarks: - PrismTech A Singleton topic has a single domain-wide instance A “regular” Topic can have as many instances as the number of different key values, e.g., if the key is an 8-bit character then the topic can have 256 different instances Copyright PrismTech, 2014 • Topics can be defined as Singleton or can have multiple Instances
  • 17. • IDL is the most commonly used syntax Topic • Example: struct  Student  {        long        sid;        string    name;        int          age;        float      gpa;   };   #pragma  keylist  Student  sid         PrismTech Qo S Name e Typ • A Topic type can be defined in different syntaxes Copyright PrismTech, 2014 Topic Example
  • 18. Topics as Relations struct  Student  {        long        sid;        string    name;        int          age;        float      gpa;   };   #pragma  keylist  Student  sid         Student(sid, name, age, gpa) name age gpa 1234 Peter Parker 21 4.0 2345 3456 PrismTech sid Tony Stark Bruce Wayne 15 23 4.0 3.5 Copyright PrismTech, 2014 • A Topic cans be seen as defining a relation
  • 19. • Topics Types => Relation Schema • Topic Instance => Key • Topic Sample => Tuple PrismTech Copyright PrismTech, 2014 Mapping DDS to the Relational Model
  • 20. • Start identifying corse relations and properties of data • Start decomposing based on properties • Apply a normal form - PrismTech Functional Dependencies => Boyce-Codd Normal Form Multivalued Dependencies => Fourth Normal Form Copyright PrismTech, 2014 Relational Design
  • 22. UML Data Modelling • A subset of UML can be used to model Data Models • The resulting model can be easily translated into a relational model and the used • The allowed subset of UML are: - Classes (with only attributes) - Associations - Association Classes - Subclasses - Composition and Aggregation • UML Data Models can be automatically translated into relational model as far as each “regular” class defines a primary key PrismTech Copyright PrismTech, 2014 in a DBMS or DDS
  • 23. Class • A UML class is mapped to a relation that has the same name of the class, Student sid: int name: string age: int gpa: float PrismTech Copyright PrismTech, 2014 shares its key and attributes Student(sid, name, age, gpa)
  • 24. • By default association can be mapped as follows, yet, depending on the multiplicity of the association different mappings may be possible/desirable ! ! C1 K1: PK O1 A C2 K2: PK O2 C1(K1, O1) C2(K2, O2) A(K1,K2) ! • The key definition in the association depends on the multiplicity PrismTech Copyright PrismTech, 2014 Association
  • 25. 1-to-many Association M1 Use a relation to capture the association M2 Embed the association on the many side of the association C1 K1: PK O1 PrismTech 0..1 A C2 * K2: PK O2 M1 C1(K1, O1), C2(K2, O2), A(K1, K2) M2 C1(K1, O1), C2(K2, O2, K1) Copyright PrismTech, 2014 There are two ways of mapping a 1-to-many association to the relational model
  • 26. C1 K1: PK O1 PrismTech * A C2 * K2: PK O2 C1(K1, O1) C2(K2, O2) A(K1,K2) Copyright PrismTech, 2014 many-to-many Associations
  • 27. Relationships arity K2 K2 K1 K2 Copyright PrismTech, 2014 K1 K1 PrismTech One to Many Many to Many Key = K2 One to One Key = K1, K2
  • 28. C1 K1: PK O1 A C2 K2: PK O2 C1(K1, O1) C2(K2, O2) Association A PrismTech A(K1,K2, a1, a2) Copyright PrismTech, 2014 Association Classes
  • 29. tsdotd14 Self Association • Self association are modelled as traditional relations, which the only Student sid: int name: string age: int gpa: float * PrismTech Student(sid, name, age, gpa) Sibling(sidParent, sidSibling) * Slbling Copyright PrismTech, 2014 difference that attributes mau be conserved
  • 30. Subclasses Three ways of mapping subclassing to the relational model T2 Subclass relations contain all attributes T3 One relation containing all superclass and subclass attributes A K: PK X T1 A(K, X), B(K, Y), C(K, Z) T2 A(K, X), B(K, X, Y), C(K, X, Z) B Y C Z T3 A(K, X, Y, Z) The best translation may depend on the the context, e.g. T3 good for heavily overlapping subclasses, T2 good for disjoint and complete subclasses PrismTech Copyright PrismTech, 2014 T1 Subclass relations contain the superclass key and the specialised attributes
  • 31. Composition and Aggregation • The precondition to easily map composition to the relational model is for Whole K: PK W Part P Whole(K, W) Part(P, K) • When mapping aggregation (unfilled diamond), the key K on the Part should have a domain that allows for null values PrismTech Copyright PrismTech, 2014 the part not to have a key
  • 32. • A subset of UML can be used to model relational data models • The mapping rules can be used to help translating existing Object Oriented data models into their relational counter-part PrismTech Copyright PrismTech, 2014 Summing Up
  • 34. Why Relation Refinement? • The UML/ER Data Models provide usually a good starting point toward the • The relations implied by the UML/ER Data Model often need to be normalised and re-organised to address performances and workload criteri • The goal of relation refinements is to remove redundancy and/or decompose a relation with smaller relations • Normal forms provide a way of measuring the amount of redundancy that may be in our data model PrismTech Copyright PrismTech, 2014 data model that we’ll actually use in the system
  • 35. Redundancy • Redundant Storage: Information may be stored multiple times leading to • Update Anomalies: If one copy of the redundant information is update this may create inconsistencies in other copies — unless all copies are updated at the same time • Insertion Anomalies: It may not be possible to store some information, unless some other information is stored as well • Deletion Anomalies: It may not be possible to delete some information without loosing som other information as well PrismTech Copyright PrismTech, 2014 space, and perhaps time, inefficiencies
  • 36. Decomposition • Unconsidered decomposition can lead more problems than benefits, thus - You really need to decompose the relation - You fully understand the implications of the decomposition (lossless join, dependency preservation) • Normal Forms provide good guidelines for relations decompositions as they guarantees that certain class of problems cannot be introduced • Notice that decomposition can have a performance impact as it may lead to an increase in joins PrismTech Copyright PrismTech, 2014 when decomposing you always want to ensure that:
  • 37. Functional Dependencies • A Functional Dependency (FD) is a kind of Integrity Constraint (IC) that • Given a relation R along with two nonempty sets of attributes X and Y in R, we say that R satisfies the FD X ⟶ Y if the following holds for every pair of tuples t1 and t2 in R: ! if t1.X = t2.X then t1.Y = t2.Y • In other terms, the FD says that if two tuple agree on the set of attributes on X they also agree on the set of attributes in Y • Notice that a primary key constraint is a special kind of FD PrismTech Copyright PrismTech, 2014 generalises the concept of a key
  • 38. Example percentile of the student GPA, e.g. which percentage of students has a GPA that is smaller of equal ! sid ! ! name age gpa percentile 1234 Peter Parker 21 4.0 100 2345 Tony Stark 3456 Bruce Wayne 15 23 4.0 3.5 100 75 ! • Clearly we have that the percentile attribute functionally depends on gpa, or equivalently gpa ⟶ percentile PrismTech Copyright PrismTech, 2014 • Let’s assume our Student relation now includes a new attribute that measure the
  • 40. Normal Forms • Different Normal Forms (NF) exist that provide guidance on how to decompose • If a relation is in a given normal form then we are guarantees that some anomalies cannot arise, e.g. update anomaly, etc. • The normal forms based on functional dependencies are the first normal form (1FN), second normal form (2FN), third normal form (3NF) and the Boyce-Codd normal form (BCNF) • Every relation in BCNF is also in 3NF, every relation in 3FN is also in 2FN and finally every relation in 2NF is also in 1NF • The 2NF and 3NF have only historical interest, while the BCNF has important practical applicability PrismTech Copyright PrismTech, 2014 relations
  • 41. • A relation is in 1NF if every field contains only atomic values, that is not lists, or sets PrismTech Copyright PrismTech, 2014 1NF
  • 42. Boyce-Codd Normal Form (BCNF) Let R be a relation, X a subset of attributes of R and a an attribute of R. R is in Boyce-Codd Normal Form (BCNF) if for every FD: X ⟶ {a} that holds over R, one of the following is true: Copyright PrismTech, 2014 • a ∊ X, that is it is a trivial FD, or • X is a superkey ! Intuitively, in a BCNF relation the only nontrivial dependencies are those in which a key determines some attributes. Each attribute must describe the key, the whole key, and nothing but the key key attr 1 attr 2 Functional Dependencies in BCNF PrismTech attr k
  • 43. BCNF Decomposition Algorithm Input: relation R and FDs for R Compute Keys for R Repeat until all relations are in BCNF Choose a relation Ri with A ⟶ B that violates BCNS Decompose Ri into R1(A, B) and R2(A, rest) Compute FDs for R1 and R2 Compute Keys for R1 and R2 PrismTech Copyright PrismTech, 2014 Output: decomposition of R into BCNF relations with lossless join
  • 44. 3NF • a ∊ X, that is it is a trivial FD, or • X is a superkey, or • a is part of some key for R The definition of 3NF is similar to that of BCNF, with the difference that a may be part of a key for R PrismTech Copyright PrismTech, 2014 Let R be a relation schema, X a subset of attributes of R and a an attribute of R. R is in Third Normal Form if for every FD: X ⟶ {a} that holds over R, one of the following is true:
  • 45. Multivalued Dependencies • For a relation R we say that A ↠ B (A multi-determines B), where A and B ! ! ! ∀ t,u ∈ R: t.A = u.A then ∃ v ∈ R: v.A = t.A and v.B = t.B and v.rest = u.rest ! • Multivalued dependencies are sometimes called tuple-generating dependencies PrismTech Copyright PrismTech, 2014 are sets of fields in R, if:
  • 46. • A relation R with multivalued dependencies (MVD) is in 4NF if for each nontrivial A ↠ B, A is a key • The 4NF implies the BCNF PrismTech Copyright PrismTech, 2014 Fourth Normal Form (4NF)
  • 47. 4NF Decomposition Algorithm Output: decomposition of R into 4NF relations with lossless join Compute Keys for R Repeat until all relations are in 4NF Choose a relation Ri with a nontrivial A ↠ B that violates 4NF Decompose Ri into R1(A, B) and R2(A, rest) Compute FDs and MVDs for R1 and R2 Compute Keys for R1 and R2 PrismTech Copyright PrismTech, 2014 Input: relation R and FDs and MVDs for R
  • 48. • Dependency enforcement may require joins • Query workload — due to excessive joins • Over-decomposition PrismTech Copyright PrismTech, 2014 Shortcomings of BCNF and 4NF
  • 50. Selection and Projection • Relational algebra provides operators to select rows (σ) an to project columns from a relation (π) Copyright PrismTech, 2014 • These operation allow to operate on a single relation Examples: σage<20 (Student) Student sid name 1234 Peter Parker age gpa 21 4.0 2345 Tony Stark 15 3456 Bruce Wayne 23 4.0 3.5 PrismTech sid name 2345 Tony Stark age gpa 15 4.0 πname,gpa(Student) name gpa Peter Parker 4.0 Tony Stark 4.0 Bruce Wayne 3.5
  • 51. • Join is one of the most useful operator in relational algebra and is most commonly used to combine/reassemble information from two or more relations • Join is conceptually a cross product followed by a selection and projection PrismTech Copyright PrismTech, 2014 Joins
  • 52. • Condition joins are the most general form of joins. This operation takes a condition and two relations and is defined as follows: R ⋈c C = σc(RxS) PrismTech Copyright PrismTech, 2014 Condition Joins
  • 53. • Equijoin is a special case of the Condition Join, where the condition predicates on attribute equality PrismTech Copyright PrismTech, 2014 Equijoin
  • 54. • A Natural Join is a special Equijoin that operates on all the attributes having the same name in R and S PrismTech Copyright PrismTech, 2014 Natural Join
  • 56. Relational Design in DDS • Start decomposing based on properties (can use UML for this) • Apply a normal form - Functional Dependencies => Boyce-Codd Normal Form - Multivalued Dependencies => Fourth Normal Form • Define QoS for the resulting relations and further decompose if you incur in some QoS Mix (more later) PrismTech Copyright PrismTech, 2014 • Start identifying corse relations and properties of data
  • 57. • DDS Supports: - Selection for a given Topic DDS queries and filters - Conditional Joins across multiple Topics via the Multi-Topics • DDS uses a subset of SQL-92 to express selections, projections and joins PrismTech Copyright PrismTech, 2014 Relational Algebra
  • 58. • In some instances you may find that a topic (relation) R has two disjoint sets of attribute X and Y that have conflicting temporal, reliability or durability requirements • In this case this relation has to be further decomposed PrismTech Copyright PrismTech, 2014 DDS Specific Decomposition
  • 59. Frequency Mix • Suppose you have a relation R(K, X,Y) were the set of attributes X changes • In this case you should decompose the relation R into: ! R1(K, X), R2(K, Y) ! • This will reduce the resource usage in your system, e.g. bandwidth as well as CPU but may introduce consistency issues. If consistency is essential then coherent updates should be used to atomically update R1 and R2 PrismTech Copyright PrismTech, 2014 far more frequently than the set of attributes Y (e.g. position, vs. velocity)
  • 60. Reliability Mix some soft-state. • In this case you should decompose the relation R into: ! R1(K, X), R2(K, Y) ! • This decomposition allows to only use reliable distribution for R1 and besteffort for R2 thus reducing resource usage in the system PrismTech Copyright PrismTech, 2014 • Suppose you have a relation R(K, X,Y) were the set of attributes Y represent
  • 61. Durability Mix a different durability than the set of attributes Y, e.g. X need sto be persistent while Y volatile • In this case you should decompose the relation R into: ! R1(K, X), R2(K, Y) ! • This will reduce the resource usage in your system and reduce the pressure on the Durability Service PrismTech Copyright PrismTech, 2014 • Suppose you have a relation R(K, X,Y) were the set of attributes X requires
  • 63. Concluding Remarks • The relational model provides the right set of tools for designing DDS-based • DDS Topics are relations and DDS supports a subset of relational algebra to manipulate these relations (topics) • The design process is as follows: - Ensure your model is in BCNF or 4NF — make sure your understand why some violations are necessary/desirable for your system - Add QoS to your relations - PrismTech Start modelling your system using the UML Data Modelling subset Evaluate if further decomposition is required due to QoS mixes — if your data model is properly normalised Copyright PrismTech, 2014 systems
  • 65. • A First Course in Database Systems (3rd edition), Ullman and Widom • Database Management Systems (3rd edition), Ramakrishnan and Gehrke PrismTech Copyright PrismTech, 2014 Books
  • 66. • Jennifer Widom, Stanfords, Introduction to Databases - PrismTech A very very good course on Databases in general and specifically on relational data modelling Copyright PrismTech, 2014 coursera.org
  • 69. • Relational Data Models are commonly expressed using, some variation of, Entity-Relationship (ER) Data Models • The ER Data Model is built around the concepts of entities, attributes and relationships (not to be confused with relations!) PrismTech Copyright PrismTech, 2014 Entity Relationship(ER) Data Model
  • 70. Entities, Attributes and Entity Sets • An entity is an object in the real world that is distinguishable from other - e.g. the iPhone, the Samsumg Galaxy Note, etc. • An entity is described through a set of attributes • An entity set identifies a collections of similar entities - e.g., Mobile Phones • Each attribute associated with an entity set must identify its domain • An entity has a primary key and potentially several candidate keys PrismTech Copyright PrismTech, 2014 objects
  • 71. Mapping name age sid gpa Student Student Entity Set PrismTech sid 1234 2345 3456 name Peter Parker Tony Stark Bruce Wayne age 21 15 23 Student Entity Set gpa 4.0 4.0 3.5 Copyright PrismTech, 2014 • An entity set is mapped to a relation
  • 72. • A relationship is an association between two or more entities - e.g., a student is enrolled in a course • A relationship can have descriptive attribute to record information about a relationship PrismTech Copyright PrismTech, 2014 Relationships
  • 73. Mapping • The attributes of the resulting relation are: - the primary key of each participating entity as foreign keys - descriptive attributes as fields of the relation • The primary key of the resulting relations depends on arity of the relationship PrismTech Copyright PrismTech, 2014 • A relationship Set is mapped to a relation
  • 74. Entity Hierarchies • In some cases it is natural to introduce (type) name Copyright PrismTech, 2014 ssn Employees hierarchies among entities • These hierarchies are represented through the ISA relationship hoursWorked ISA contractId hourlyWages HourlyEmpls PrismTech ContractEmpls
  • 75. ISA relationships can be mapped into two ways • Map each entity to a distinct relation • Create only relations for the concrete types Notice that while the first approach is always applicable, the second is not PrismTech Copyright PrismTech, 2014 Mapping