Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.