Department of Computer Science University of Cyprus EPL446 Advanced Database Systems. Lecture 14. Transactions and Schedules

Σχετικά έγγραφα
Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview

Συστήματα Διαχείρισης Βάσεων Δεδομένων

2 Composition. Invertible Mappings

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

EE512: Error Control Coding

Locking to ensure serializability

TMA4115 Matematikk 3

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Section 8.3 Trigonometric Equations

Αρχεία και Βάσεις Δεδομένων

Transaction Processing (Διαχείριση Δοσοληψιών)

derivation of the Laplacian from rectangular to spherical coordinates

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Αρχεία και Βάσεις Δεδομένων

Example Sheet 3 Solutions

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

The Simply Typed Lambda Calculus

4.6 Autoregressive Moving Average Model ARMA(1,1)

Math 6 SL Probability Distributions Practice Test Mark Scheme

Matrices and Determinants

Concrete Mathematics Exercises from 30 September 2016

Every set of first-order formulas is equivalent to an independent set

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

C.S. 430 Assignment 6, Sample Solutions

Approximation of distance between locations on earth given by latitude and longitude

The challenges of non-stable predicates

Other Test Constructions: Likelihood Ratio & Bayes Tests

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Instruction Execution Times

Section 9.2 Polar Equations and Graphs

Lecture 2. Soundness and completeness of propositional logic

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Statistical Inference I Locally most powerful tests

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Assalamu `alaikum wr. wb.

Homework 3 Solutions

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

ST5224: Advanced Statistical Theory II

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

forms This gives Remark 1. How to remember the above formulas: Substituting these into the equation we obtain with

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

SCITECH Volume 13, Issue 2 RESEARCH ORGANISATION Published online: March 29, 2018

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Second Order RLC Filters

Srednicki Chapter 55

Example of the Baum-Welch Algorithm

A Note on Intuitionistic Fuzzy. Equivalence Relation

Reminders: linear functions

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

the total number of electrons passing through the lamp.

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

Finite Field Problems: Solutions

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Math221: HW# 1 solutions

Inverse trigonometric functions & General Solution of Trigonometric Equations

PARTIAL NOTES for 6.1 Trigonometric Identities

Abstract Storage Devices

Test Data Management in Practice

( y) Partial Differential Equations

Chapter 3: Ordinal Numbers

Code Breaker. TEACHER s NOTES

Advanced Subsidiary Unit 1: Understanding and Written Response

Strain gauge and rosettes

Section 7.6 Double and Half Angle Formulas

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Areas and Lengths in Polar Coordinates

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

7 Present PERFECT Simple. 8 Present PERFECT Continuous. 9 Past PERFECT Simple. 10 Past PERFECT Continuous. 11 Future PERFECT Simple

Areas and Lengths in Polar Coordinates

The Probabilistic Method - Probabilistic Techniques. Lecture 7: The Janson Inequality

On a four-dimensional hyperbolic manifold with finite volume

Second Order Partial Differential Equations

5.4 The Poisson Distribution.

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Homework 8 Model Solution Section

Modbus basic setup notes for IO-Link AL1xxx Master Block

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Fractional Colorings and Zykov Products of graphs

Μηχανική Μάθηση Hypothesis Testing

Solutions to Exercise Sheet 5

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

D Alembert s Solution to the Wave Equation

Durbin-Levinson recursive method

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Galatia SIL Keyboard Information

Numerical Analysis FMN011

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

LESSON 14 (ΜΑΘΗΜΑ ΔΕΚΑΤΕΣΣΕΡΑ) REF : 202/057/34-ADV. 18 February 2014

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΒΑΛΕΝΤΙΝΑ ΠΑΠΑΔΟΠΟΥΛΟΥ Α.Μ.: 09/061. Υπεύθυνος Καθηγητής: Σάββας Μακρίδης

Transcript:

Department of Computer Science University of Cyprus EPL446 Advanced Database Systems Lecture 14 Transactions and Schedules Chapter 17.4-17.5 : Elmasri & Navathe, 5ED Chapter 16.2-16.3 and 17.1: Ramakrishnan & Gehrke, 3ED Demetris Zeinalipour http://www.cs.ucy.ac.cy/~dzeina/courses/epl446 14-1

Lecture Outline Transactions and Schedules 16.2) Transactions and Schedules (Χπονοππόγπαμμα) Serial Schedule (Σειπιακό Χπονοππόγπαμμα) one after the other Complete Schedule (Πλήπερ Χπονοππόγπαμμα) with Commit, Abort 17.1) (Σειπιοποιεζιμόηεηα) Correctness Measure of some Schedule Why is it useful? It answers the question: Will an interleaved schedule execute correctly i.e., a Serializable schedule will execute as correctly as serial schedule but in an interleaved manner! 17.1) (Επαναθεπζιμόηεηα) Measure of some Schedule. Why is it useful? It answers the question: Do we need to rollback a some (or all) transactions in an interleaved schedule after some Failure (e.g., ABORT) i.e., in a Recoverable schedule no transaction needs to be rolled back (διαδικαζία επιζηποθήρ) once committed! 14-2

Transactions and Schedules (Δοζολετίερ και Χπονοππόγπαμμα) Serial Schedule (Σειπιακό Χπονοππόγπαμμα) A schedule in which the different transactions are NOT interleaved (i.e., transactions are executed from start to finish one-by-one) Serial Schedule Τ1 Τ2 --------------------- R(B) W(B) Serial Schedule Τ1 Τ2 --------------------- R(B) W(B) N! Possible Serial Schedules, where N the number of Transactions 14-4

Transactions and Schedules (Δοζολετίερ και Χπονοππόγπαμμα) Complete Schedule (Πλήπερ Χπονοππόγπαμμα) A schedule that contains either a commit (ολοκλήπυζη δοζολητίαρ) or an abort (μαηαίυζη δοζολητίαρ) action for EACH transaction.* Complete Schedule Τ1 Τ2 --------------------- R(B) W(B) Commit Abort Complete Schedule Τ1 Τ2 --------------------- R(B) Commit W(B) Abort Complete (Serial) Schedule Τ1 Τ2 --------------------- Commit R(B) W(B) Abort * Note: consequently, a complete schedule will not contain any active transactions at the end of the schedule 14-5

Transactions and Schedules (Δοζολετίερ και Χπονοππόγπαμμα) Interleaved Schedules of transactions improve performance Throughput (ρυθμαπόδοση): More Xacts per seconds; and Response Time (σπόνορ απόκπιζηρ): A short transaction will not get stuck behind a long-running transaction Yet it might lead the DB to an inconsistent state as we have shown Serial schedule (ζειπιακό σπονοππόγπαμμα) is slower but guarantees consistency (correctness) We seek to identify schedules that are: As fast as interleaved schedules. As consistent as serial schedules 14-6

Transactions and Schedules (Δοζολετίερ και Χπονοππόγπαμμα) We shall now characterize different schedules based on the following two properties: A. Based on (Σειπιοποιηζιμόηηηα) We shall ignore Commits and Aborts for this section Characterize which schedules are correct when concurrent transactions are executing. Conflict Serializable Schedule (Σειπιοποιεζιμόηεηα Σςγκπούζευν) View Serializable Schedule (Σειπιοποιεζιμόηεηα Ότευν) B. Based on (Επαναθεπζιμόηηηα) Commits and Aborts become important for this section! Characterize which schedules can be recovered and how easily. Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα). Cascadeless schedule (Χπονοππ. συπίρ διαδιδόμενε ανάκλεζε). 14-7 EPL446: Strict Advanced Schedules Database (Αςζηεπό Systems - Demetris Χπονοππόγπαμμα). Zeinalipour (University of Cyprus)

Conflicting Actions (Σςγκποςόμενερ Ππάξειρ) Conflicting Actions (Σςγκποςόμενερ Ππάξειρ) Two or more actions are said to be in conflict if: The actions belong to different transactions. At least one of the actions is a write operation. The actions access the same object (read or write). The following set of actions is conflicting: T1:, T2:, T3: While the following sets of actions are not: T1:, T2:, T3: T1:, T2:W(Y), T3: // No Write on same object // No Write on same object T1 T2 T3 14-8

Conflict Equivalence (Ιζοδςναμία Σςγκπούζευν) Conflict Equivalence (Ιζοδςναμία Σςγκπούζευν) The schedules S1 and S2 are said to be conflict-equivalent if the following conditions are satisfied: Both schedules S1 and S2 involve the same set of transactions (including ordering of actions within each transaction). The order (διάηαξη) of each pair of conflicting actions in S1 and S2 are the same. Why is the order of Conflicts important? If two conflicting operations are applied in different orders, the net effect can be different on the database or on other transactions in the schedule. See example below: Example: Τ1 Τ2 Τ1 Τ2 A=5 A=A+1=6 A=6 A=A+1=7 -------------------------- NOT Conflict Equivalent to: A=5 A=A+1=6 A=6 A=6 Order -------------------------- of conflict is different NOT Conflict Equivalent to: A=5 A=5 A=A+1=6 A=A+1=6 A=A+1=7 (Alth. Result Now Wrong EPL446: Advanced Database still same) Systems - Demetris Zeinalipour Result! (University of Cyprus) * Note that non-conflicting operations can arbitrary be swapped around without compromising the order. Τ1 Τ2 -------------------------- Order and conflicts are different 14-9

Conflict (Σειπιοποιηζιμόηηηα Σςγκπούζευν) Conflict (Σειπιοποιήζιμο Σςγκπούζευν) When the schedule is conflict-equivalent (ιζοδύναμο ζςγκπούζευν) to some (any!) serial schedule. Serializable == Conflict Serializable (that definition is in some textbooks different) Serial Schedule Τ1 R(B) W(B) Τ2 R(B) W(B) Serializable Schedule A Τ1 R(B) W(B) Τ2 Order of conflicts same to T1; T2 R(B) W(B) Serializable Schedule B Τ1 Order of conflicts same to T2;T1 R(B) W(B) Τ2 R(B) W(B) 14-10

Conflict (Σειπιοποιηζιμόηηηα Σςγκπούζευν) Why is Conflict important? We have already said that any serial schedule leaves the DB in a consistent (correct) state, but is inefficient i.e., T1; T2 is as correct as T2; T1 (although they might have a different outcome). Serializable!= Serial: NOT the same thing Being Serializable implies: A.That the schedule is a correct schedule. It will leave the database in a consistent state. The interleaving is appropriate and will result in a state as if the transactions were serially executed. B.That a schedule is a efficient (interleaved) schedule That parameter makes it better than Serial! 14-11

Testing for (Έλεγσορ Σειπιοποιηζιμόηηηαρ) How can we test if a schedule is Conflict Serializable? There is a simple algorithm detailed next (that is founded on a Precedence Graph) Does the DBMS utilizes this algorithm? NO We detail it only to gain a better understanding of the definitions. Why is the DBMS not using it? is hard to check at runtime Difficult to determine beforehand how the operations in a schedule will be interleaved (as it depends on the OS) In the next lecture, we will see that a DBMS utilizes a set of protocols (e.g., 2PL or other Concurrency Control techniques w/out locking) that guarantee that a schedule is always serializable. 14-12

Precedence Graph (Γπάθορ Πποηεπαιόηεηαρ) Why is it useful? To find if a schedule is Conflict Serializable A Precedence Graph (Γπάθορ Πποηεπαιόηηηαρ) for a schedule S contains: A node for each committed transaction in S An arch from T i to T j, if an action of T i precedes (πποεγείηαι) and conflicts (ζςγκπούεηαι) with one of T j s actions. Precedence Graph Τ1 Τ2 T3 -------------------------------------- T1 T2 Cycle exists! T3 A schedule S is conflict serializable if and only if its precedence graph is acyclic. The above schedule is not Conflict Serializable! 14-13

Conflict Testing (Έλεγσορ Σειπιοποιεζιμόηεηαρ Σςγκπούζευν) Precedence Graph T1 T2 Write_item(z) T3 Cycles exist! Above schedule is ΝΟΤ Conflict Serializable! Although efficient (interleaved) the above will NOT produce a correct result! 14-14

View Equivalence (Ιζοδςναμία Ότευν) Let us now relax (σαλαπώζοςμε) the definition of equivalence (and serializability) of schedules by introducing the notion of view equivalence serializability. In View Equivalence, respective transactions in the two schedules read and write the same data values ("view" the same data values).. While in Conflict Equivalence, respective transactions in two schedules have the same order of conflicting actions Formal definitions and examples will follow 14-15

View (Σειπιοποιεζιμόηεηα Ότευν) View Serializable (Σειπιοποιηζιμόηηηα Ότευν): A Schedule is View Serializable if it is view equivalent to some serial schedule VENN Diagram All schedules View Serializable Conflict Serializable (Serializable) Serial Conflict serializable => View serializable, but not vice versa. Testing for View is NP-hard, meaning that finding an efficient polynomial time algorithm to this problem is highly unlikely. We will only work on small examples for which we can characterize the type of serializability by observation (so no algorithm is necessary) 14-16

View Equivalence (Ιζοδςναμία Ότευν) View Equivalence (Formal Definition) (1) Same WR order: If in S1: w j (A) r i (A); i,j are identifiers of Transactions then in S2: w j (A) r i (A) (2) First Read: If in S1: r i (A) reads initial DB value, then in S2: r i (A) also reads initial DB value (3) Last Write: If in S1: w i (A) does last write on A, then in S2: w i (A) also does last write on A means, Schedule reads value produced The premise behind view equivalence: The view : the read operations are said to see the same view in both schedules. Rule: As long as each read operation of a transaction reads the result of the same write operation in both schedules, the write operations of each transaction must produce the same results. 14-17

View (Σειπιοποιεζιμόηεηα Ότευν) View Summary: I. Same Transaction Reads Data First. II. Same Transaction Writes Data Last. III. Same WR Order of actions. b) Conflict & View Serializable Schedule (also serial) Τ1 Τ2 T3 --------------------------------- c) View Serializable but NOT Conflict Serializable Τ1 Τ2 T3 -------------------------------------- Why is the second schedule View Serializable? In both schedules (a) and (b): First Read by T1 and Final Write performed by T3 and WR order does not change (actually we have no reads in T2 and T3) Order of conflicts not same with any serial schedule 14-18

Introduction to (Ειζαγυγή ζηεν Επαναθεπζιμόηεηα) So far we have characterized schedules based on serializability (ζειπιοποιηζιμόηηηα), i.e., correctness. Now it is time to characterize schedules based on recoverability (επαναθεπζιμόηηηα) Why is this important? For some schedules it is easier to recover from transaction failures than others. In summary, a Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα) is a schedule where no transaction needs to be rolled back (διαδικαζία επιζηποθήρ) once committed. Commit/Abort points now become quite important! 14-19

Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα) Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα) A schedule S is recoverable if no transaction T in S commits until all transactions T, that have written an item that T reads, have committed. Rule: In other words, the parents of dirty reads need to commit before their children can commit Consider the Following schedule: Τ1 R(Y) T1 should have committed first! Abort Τ2 dirty read Commit Is this schedule recoverable? Answer: NO Why NOT recoverable? Because T2 made a dirty read and committed before T1 next slide explains why this is a problem 14-20

Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα) But why is the schedule Nonrecoverable (Μηεπαναθέπζιμο)? Because when the recovery manager rolls back (step a) T1 then A gets its initial value. But T2 has already utilized this wrong value and committed something to the DB The DB is consequently in an inconsistent state! a) Roll back Τ1 R(Y) Abort Τ2 dirty read Commit Nonrecoverable B) Now DB is inconsistent! (because X was committed based on T1 s aborted transaction) 14-21

Recoverable Schedule (Επαναθέπζιμο Χπονοππόγπαμμα) How can we make the Schedule Recoverable? Initial Unrecoverable Schedule Recoverable Schedule A Τ1 R(Y) Abort Τ2 dirty read Commit Commit after parent of dirty read Recoverable Τ1 R(Y) Abort Τ2 dirty read Commit Nonrecoverable Recoverable Schedule B Τ1 R(Y) Abort Τ2 Commit Remove Dirty Read Recoverable Not Serializable (order of conflicting actions has changed) 14-22

Other Schedules based on (Άλλα σπονοππογπάμμαηα βάζε Επαναθεπζιμόηεηαρ) There are more strict types of Schedules (based on the properties) Cascadeless schedule (Χπονοππόγπαμμα συπίρ διαδιδόμενη ανάκληζη): (or Schedule that Avoids Cascading Rollbacks) Refers to cases where we have aborts. Strict Schedules (Αςζηηπό Χπονοππόγπαμμα) These schedules are very simple to be recovered! Thus, the DBMS prefers this class of Schedules. All schedules Recoverable Avoid Cascading Aborts Strict Serial 14-23

Cascadeless Schedule (Χπονοππόγπαμμα συπίρ διαδιδόμενη ανάκληζη) Cascadeless schedule (Χπονοππόγπαμμα συπίρ διαδιδόμενη ανάκληζη): or Schedule that Avoids Cascading Rollbacks) One where a rollback does not cascade to other Xacts Why is this necessary? Rollbacks are Costly! How can we achieve it? Every transaction reads only the items that are written by committed transactions. Τ1 Τ2 a) dirty read R(Y) b) Roll back W(Y) Abort c) (Cascade) Commit We need to Roll back T2 as well! NOT Cascadeless (but Recoverable) 14-24

All schedules Recoverable Avoid Cascading Aborts Strict Serial Cascadeless Schedule (Χπονοππόγπαμμα συπίρ διαδιδόμενη ανάκληζη) Let us turn the previous example into a Cascadeless Schedule Recall, in order to get a Cascadeless Schedule, every transaction must read only committed data Cascadeless Schedule a) Roll back Τ1 R(Y) W(Y) Abort Τ2 b) Now T2 reads the X value that existed before T1 started. Commit Another Cascadeless Schedule Τ1 R(Y) W(Y) Abort Τ2 Commit but not strict 14-25

Strict Schedule (Αςζηεπό Χπονοππόγπαμμα) Strict Schedule (Αςζηηπό Χπονοππόγπαμμα): A schedule is strict if overriding of uncommitted data is not allowed. Formally, if it satisfies the following conditions: Tj reads a data item X after Ti has terminated (aborted or committed) Tj writes a data item X after Ti has terminated (aborted or committed) Why is this necessary? Eliminates Rollbacks! If a schedule is strict, a rollback can be achieved simply by resetting the Xact variables to the value before its start value, e.g., Cascadeless but NOT Strict b) Rollback X=9 now Τ1 Τ2 // X=9 W(X,5) W(X,8) a) Changing an item that Commithas not been committed EPL446: Abort Advanced Database Systems - Demetris Zeinalipour (University of Cyprus) yet (X=8 now) c) Why is this a problem? Because X now became again 9 rather than X=8 or X=5! T i T j 14-26

Characterizing Schedules (Χαπακηεπίδονηαρ Χπονοππογπάμμαηα) Venn Diagram Illustrating the Different ways to characterize a Schedule based on and 14-27