Presentation is loading. Please wait.

Presentation is loading. Please wait.

Constraints.

Similar presentations


Presentation on theme: "Constraints."— Presentation transcript:

1 Constraints

2 Primary Key Constraint
It is derived from the entity UID or created as surrogate key. Uniqueness is enforced by an index: Index is not defined in Oracle Designer All columns in key are mandatory. It should not be updatable. Every table should have one!

3 Unique Key Constraint Derived from secondary entity UIDs
Can include NULL columns Are optional Recommended where a surrogate key is used for PK

4 Foreign Key Constraint
Derived from relationships Can reference either a primary or a unique key: But avoid referencing unique keys! Must not be partly NULL Can reference its own table Cannot reference tables on other databases

5 Foreign Key Rules X Server handles RESTRICT and CASCADE Delete only
NULLIFY DEFAULT (default) TITLE RENTAL COPY COPY DML X DML DML DML DML NULL DEFAULT RENTAL_ITEM COPY BOOKING BOOKING Server handles RESTRICT and CASCADE Delete only

6 Defining Foreign Key Rules
Foreign Key Properties Cascades Defaults Nullifies Restricted Cascade Rules Delete Rule Update Rule Avoid using any update rule: PKs should not be updatable

7 Check Constraint CHECK ((position = 'TECHNICAL' AND salary BETWEEN 3000 AND 4000) OR (position != 'TECHNICAL')) EMPLOYEES IDENTIFIER LAST_NAME FIRST_NAME POSITION SALARY

8 Foreign Keys in Arcs CHECK ((FK_A IS NOT NULL AND FK_B IS NULL)
DSD1 A ID C ID FK_A FK_B B ID CHECK ((FK_A IS NOT NULL AND FK_B IS NULL) OR (FK_B IS NOT NULL AND FK_A IS NULL))

9 Implementing Subtypes
GAME and MOVIE subtypes in TITLES TITLES PRODUCT_CODE TI_TYPE CHECK ((TI_TYPE = 'GA' AND GAME_CATEGORY IS NOT NULL AND MEDIUM IS NOT NULL AND MOVIE_CATEGORY IS NULL AND AGE_RATING IS NULL) OR ... TITLE MOVIE_CATEGORY AGE_RATING GAME_CATEGORY MEDIUM

10 More Uses for Check Constraints
START_DATE < END_DATE Positive numeric column values > 0 IS NOT NULL Can only check columns within the same row; use triggers for more complex checks

11 Defining a Check Constraint
Create Check Constraint for EMPLOYEES : Name Check constraint name Check constraint condition Column EMP_DEPT_FK Specify the Where/Validation condition

12 Where Are Constraints Validated?
At the client, the server or both Considerations: Database integrity Interactive response Network traffic Overall system performance

13 Specifying Location of Validation
Relational Table Definitions Foreign Keys BOO_COP_FK Where to enforce Foreign Key Properties Validation Validate in Client Server Both None

14 Action Edit Block Field
Server Validation Client Server Action Edit Block Field Customers: DML Posted Guaranteed integrity Minimal network traffic No immediate feedback

15 Server and Client Validation
Action Edit Block Field Customers: DML Posted Guaranteed integrity Immediate feedback Network traffic for every check

16 Action Edit Block Field
Client Validation Client Server Action Edit Block Field Customers: DML Posted Immediate feedback No guaranteed integrity Network traffic for every check and again for DML or commit

17 Guidelines for Choosing Where to Validate
Server validation: Guaranteed data integrity Client and server validation: Check constraints Lookup foreign keys + Case-by-case basis: Other foreign keys Unique keys ? + Lesson Aim <Enter lesson aim here.>

18 Controlling When to Enforce
Client Action Edit Block Field Customers: Transaction Committed Server Typical transactions: Oracle validates each DML statement. Complex transactions: Oracle8 server can defer validation until COMMIT.

19 Specifying When Validation Occurs
Relational Table Definitions Foreign Keys BOO_COP_FK Foreign Key Properties Validation Defer Status INITIALLY DEFERRED INITIALLY IMMEDIATE NOT DEFERRED When to enforce

20 Summary Constraints enforce data integrity:
Entity integrity Referential integrity Arcs, subtypes, and simple business rules Validation can be carried out: Server and client Deferred


Download ppt "Constraints."

Similar presentations


Ads by Google