pclec08 / 1 8. integrity this session will be directed at the many and various aspects of...
TRANSCRIPT
![Page 1: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/1.jpg)
PCLec08 / 1
8. Integrity8. Integrity
This session will be directed at the many and various
aspects of ‘Integrity’
Integrity processes are included to ensure that the
data in the database, and the information derived from
data is clear, complete and accurate.
And we will have another quick look at ‘Business Rules’ also
![Page 2: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/2.jpg)
PCLec08 / 2
But,before we do …..But,before we do …..
Here is an answer to the puzzle which has been keeping you awake for the past 3 nights.
Source Target Time Progressive
C and D move across(A,B) C,D 2 2
D returns (A,B,D) C 1 3
A and B move across (D) A,B,C 10 13
C returns (C,D) A,B 2 15
C and D move across A,B,C,D 2 17
![Page 3: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/3.jpg)
PCLec08 / 3
IntegrityIntegrity
Components of a Data Model
Structure
Operators
Integrity
![Page 4: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/4.jpg)
PCLec08 / 4
Dangers to DataDangers to Data
A DBMS must protect data from several dangers.
- Accidents( programming errors and miskeying) : these are
integrity issues.
- Malicious Use : A security issue.
- Hardware and Software Failures : these are concurrency and restart issues.
![Page 5: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/5.jpg)
PCLec08 / 5
Definitions of IntegrityDefinitions of Integrity
Data integrity requires the database to be an accurate reflection of the real world
Data should be valid and complete
Integrity issues may have been handled external to the database in the application code and possibly in multiple programs.
Codd (1985) states that integrity constraintsspecific to a particular RDBMS must be definable in SQL and stored in the database dictionary (catalog).
![Page 6: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/6.jpg)
PCLec08 / 6
A DBMS Enforced IntegrityA DBMS Enforced Integrity
Employee Table
Empno, emp_name,Age, SalaryEMPNO NUMBER(6,0) NOT NULL Attempt to add an employee without an EMPNO value
INSERT INTO EMPLOYEE(EMP_NAME,AGE,SALARY)VALUES (‘Smith’,22,35000)
This process is rejected by the DBMS but what would happen if the user entered (35000,’Smith’,22 ) ?
![Page 7: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/7.jpg)
PCLec08 / 7
An Applications Forced IntegrityAn Applications Forced Integrity
A further constraintIF AGE > 16 OR AGE < 99
THEN O-KELSE
REJECT ‘Age Invalid’
This represents a segment of program code.
![Page 8: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/8.jpg)
PCLec08 / 8
Integrity EnforcementIntegrity Enforcement
Integrity enforcement is usually split between the DBMS and the application programs.
Using application programs for integrity assertions has disadvantages.
Programming is more complex
Integrity constraints may be repeated
Change management is difficult
Constraints may contradict
Ad hoc operations may avoid the constraints
![Page 9: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/9.jpg)
PCLec08 / 9
Integrity as a Role of the DBMSIntegrity as a Role of the DBMS
Integrity rules must be considered at design time
Transactions must be monitored for violations
and appropriate actions taken
Rules should be few, without overlap and
should not impact performance too much
(this is not an invitation to exclude rules)
![Page 10: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/10.jpg)
PCLec08 / 10
Classifications of IntegritiesClassifications of Integrities
There are various possible classifications.Date(Vol 2)
- Domain Integrity (attribute based)
- Relational Integrity (table based)
![Page 11: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/11.jpg)
PCLec08 / 11
Codd’s CURED or CRUDECodd’s CURED or CRUDE
Type E - Entity Integrity
Type R - Referential Integrity
Type D - Domain Integrity :A user defined datatype
Type C - Column Integrity:Linked to Domain integrity
Type U - User Defined Integrity
![Page 12: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/12.jpg)
PCLec08 / 12
Data IntegrityData Integrity
Some terms you will encounter:
Entity Integrity
Referential Integrity
Functional Dependency (constraints between determinants
and attributes. For each value of the determinant there is only one value for each of the attributes it determines)
Multivalued Dependency
Join Dependency
Domain Constraints
Cardinality Constraint
User Defined Constraints
![Page 13: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/13.jpg)
PCLec08 / 13
Data IntegrityData Integrity
General Principle: Data compliance with a set of rules
Rules Location: Best embodied in the DBMS
If they are contained in an application, there is the danger of saturating a network and causing degraded performance.
This is particularly so in client / server computing - but are ALL the rules applicable to ALL users ?
CONSTRAINTS: Declarative approach where integrity constraints are ‘declared’ as part of a table specification. ANSI SQL-89 and SQL-92 and SQL-93 standards include specifications for integrity constraints syntax and behaviour
![Page 14: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/14.jpg)
PCLec08 / 14
Domain IntegrityDomain Integrity
A domain is a conceptual pool of values from whichone or more attributes draw their actual values.
Domain age range 0-127
Attribute employee_age 16-65
Two values can only be compared if they come fromthe same domain.
![Page 15: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/15.jpg)
PCLec08 / 15
Primary Key IntegrityPrimary Key Integrity
(based on Oracle)
A primary key has these properties– unique value (no duplicates permitted in table)– not null– multiple keys if required– referenced qualification - foreign key(s)– may be limited to a small range of values (the check
option)– may be limited to a large range of values (the ‘exists’
option)
![Page 16: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/16.jpg)
PCLec08 / 16
Foreign Key PropertiesForeign Key Properties
May be unique ( 1 : 1 relationship)
May be multiple keys
May be limited to a range of values (Domain -as for primary Keys)
May be null (as required)
May be not null (as required)
Will reference a Primary Key (or keys)
May be subject to cascade update, delete, insert
![Page 17: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/17.jpg)
PCLec08 / 17
A Domain DefinitionA Domain Definition
DOMAIN GENDER
– Data Type: Character– Length: 6 bytes– Allowable Values: Male, Female, Null– Storage Format: Uppercase– Operations Allowed:– Inherited Operators: String, Unstring, =– Input Editing: Nil– Extra Functions: Is_ Male, Is_Female,What_Gender
![Page 18: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/18.jpg)
PCLec08 / 18
Timing ConstraintsTiming Constraints
When should an integrity be checked ?TC - Test constraint no later than the end of the
current relational request.
TT - Test at the end of the transaction.(terminal test)
START TRANSACTION UPDATE EMPLOYEE SET SALARY= SALARY*1.1 TC
DELETE FROM EMPLOYEE WHERE SALARY > 1000 END TRANSACTION TT
In Oracle, the integrity check is determined by the commands ‘Update Immediate’ or ‘Update Deferred’There is also a ‘set constraints.. Immediate or deferred’ option
![Page 19: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/19.jpg)
PCLec08 / 19
A Few ExamplesA Few Examples
A transaction is a unit of work
1. Single Table - The transaction affects 1 row only does not alter any domain setting.
2. Single Table - The transaction affects multiple rows and will affect domain settings.
When should the domain integrity breach be reported ?
At the first, second - or at the end of the processes ?
When should the transaction be aborted ?
Should there be a log held of these occurrences/rows ?
![Page 20: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/20.jpg)
PCLec08 / 20
A Few ExamplesA Few Examples
3. Single Table - bulk loading.
Should the load process be stopped at the
detection of the first breach ?
Or should the load row be ‘diverted’ to a log file ?
Should there be a number count of failures ?
Should there be a limit over which the process
should be stopped ?
![Page 21: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/21.jpg)
PCLec08 / 21
Slightly More ComplexSlightly More Complex
1:M 1:M
It is possible that multiple rows in table A, table B and table C will be affected by the transaction
Transaction
A B C
![Page 22: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/22.jpg)
PCLec08 / 22
An Algorithm for Integrity ChecksAn Algorithm for Integrity Checks
Determine constraints that apply to request.
Inspect timing types.
Before the end of the relational request run types TC.
Append types TT to the end of the transaction.
Before the end of transaction run types TT.
![Page 23: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/23.jpg)
PCLec08 / 23
Foreign Key RulesForeign Key Rules
For each foreign key three rules need to be answered:
• Can the foreign key accept nulls ?
• What should happen on an attempt to delete the target of a foreign key reference?
• What should happen on an attempt to update the target of a foreign key reference ? (primary key)
Employee Dept
Empnoe1e2e3
enameredbluebrown
Worksfordeptd1
d2
Deptd1d2d3
DnamePayTaxArt
![Page 24: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/24.jpg)
PCLec08 / 24
Foreign Key RulesForeign Key Rules
When should foreign key rules be checked ?
Dept (Deptno, Dname, Budget)
Emp (Empno, Ename, Salary, WorksforDeptno)
WorksforDeptno References Dept delete cascades, update cascades
Depend (Empno, Dependname, Date-of-birth)
Empno references Emp delete cascades, update cascades
![Page 25: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/25.jpg)
PCLec08 / 25
Foreign Keys and Referencing ActionForeign Keys and Referencing Action
CREATE TABLE SUPPLIER etc. Primary Key (Sno ) CREATE TABLE PART etc. Primary Key( Pno ) CREATE TABLE SUPPLIER_PART(etc. Primary Key (Sno,Pno) Foreign Key (Sno) REFERENCES SUPPLIER (Sno) ON DELETE RESTRICT ON UPDATE CASCADES Foreign Key (Pno)REFERENCES PART (Pno) ON DELETE RESTRICT ON UPDATE CASCADES)
e.g. SUPPLIER (Sno,Sname) PART (Pno,Pname) SUPPLIER-PART (Sno,Pno,Qty)
![Page 26: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/26.jpg)
PCLec08 / 26
Foreign Keys and Referencing ActionForeign Keys and Referencing Action
The relation each Foreign Key identifies is defined. The foreign key clause also contains other information.
DELETE when the target record of a foreign key reference is detected
Performs the operation -
CASCADE - all matching SUPPLIER-PART records are also deleted.
RESTRICT - the delete is restricted such that there are no matching SUPPLIER-PART records.
SET NULL - the foreign key values are all set to NULL (only if nulls are allowed)
![Page 27: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/27.jpg)
PCLec08 / 27
Foreign Keys and Referencing ActionForeign Keys and Referencing Action
UPDATE when the Primary Key of the target record of a foreign key is updated.
CASCADE
RESTRICT
SET NULLThese options are similar to delete.
Note that the design decisions embodied in pseudo SQL represent constraint information which reflects the nature or business rules of the organisation being modelled.
![Page 28: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/28.jpg)
PCLec08 / 28
Possible Referential Integrity ProcessesPossible Referential Integrity Processes
1. Limited Insert : If an incoming Foreign Key DOES NOT EXIST as a referenced table Primary Key:
ABORT TRANSACTION - REPORT
2. Limited Update : If an incoming Foreign Key DOES NOT EXIST as a referenced table Primary Key
TERMINATE PROCESS
3. Restricted Delete : If there are referencing FOREIGN KEYS in a referencing table
TERMINATE DELETE PROCESS ON REFERENCED TABLE
![Page 29: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/29.jpg)
PCLec08 / 29
Possible Referential Integrity ProcessesPossible Referential Integrity Processes
4. Restricted Update : If there are referencing Foreign Keys in a referencing table
INHIBIT UPDATE OPERATION ON THE REFERENCED KEY
5. Cascade Delete : If there are Referenced Keys
INITIATE DELETION OPERATION ON REFERENCED
TABLE BY DELETING ALL REFERENCING ROWS
6. Cascade Update : Commence an UPDATE on the REFERENCED TABLE by UPDATING the Foreign Keys on all Referencing Rows in the Referencing Table(s)
![Page 30: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/30.jpg)
PCLec08 / 30
Possible Referential Integrity ProcessesPossible Referential Integrity Processes
7. Nullify Delete : Commence a DELETE operation on the REFERENCED table by setting ALL the FOREIGN KEYS on the Referencing Table(s) to NULL (watch Data Types)
8. Nullify Update : Set all of the Foreign Keys of the Referencing Table to NULL. This will invalidate any referencing of the Referenced Key (which must not be
NULL)
9. Default Update : Invalidate references to Updated Referenced Keys by setting all Referencing Table
Foreign Keys to a DEFAULT value
![Page 31: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/31.jpg)
PCLec08 / 31
Possible Referential Integrity ProcessesPossible Referential Integrity Processes
10. Default Delete : Invalidate references to the deleted Referencing Key Value(s) by setting all Referencing Foreign Key values to a DEFAULT value
11. Warning Delete : Permit the deletion BUT Warn the User of the Unattached Foreign Keys which are now present in the Referencing Table(s)
12. Warning Update : Permit the Update BUT Warn the User of Unattached Foreign Keys which are now present in the Referencing Table(s)
![Page 32: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/32.jpg)
PCLec08 / 32
Some Integrity Schema ExamplesSome Integrity Schema Examples
Create table monash1(
city varchar2(13) not null,
studydate date not null,
noonreading number(4,1),
midnightreading number(4,1),
rainfall number,
unique (city,studydate) );
Creates a table with the candidate key of city,studydate
There may be a number of Unique constraints
![Page 33: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/33.jpg)
PCLec08 / 33
Some Integrity Schema ExamplesSome Integrity Schema Examples
Create table monash1(
city varchar2(13) not null,
studydate date not null,
noonreading number(4,1),
midnightreading number(4,1),
rainfall number,
primary key (city,studydate) );
Creates a table with the Primary Key of city,studydate
and there is only 1 such set of values in the table.
There may be a number of Unique constraints.
![Page 34: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/34.jpg)
PCLec08 / 34
Some Integrity Schema ExamplesSome Integrity Schema Examples
Create table monash1(
city varchar2(13) not null,
studydate date not null,
noonreading number(4,1),
midnightreading number(4,1),
rainfall number,
constraint pk_citystudy primary key (city,studydate) );
Creates a table with the Primary Key key of city,studydate
and names the constraint citystudy in the Constraints table.
![Page 35: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/35.jpg)
PCLec08 / 35
Enable, DisableEnable, Disable
There is a feature in Oracle which permits the
Disabling and Enabling of constraints.
e.g. alter table shipping add primary key (ship_no, container_no)
This identifies the composite primary key as ship_no + container_no, and ensures that no two rows have the same values.
The Disable option defines the constraint but does not enforce it.
The Enable function resets the enforcement of the constraint.
![Page 36: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/36.jpg)
PCLec08 / 36
Enable, DisableEnable, Disable
The formats of the ‘disable’ and ‘enable’ commands are :
disable {{unique(column[,column]…) |
primary key |
Constrains constraint} [cascade] } |
all triggers
enable {{ unique(column[,column]…|
primary key |
[using index [initrans integer]
[maxtrans integer]
[Tablespace tablespace]
[Storage storage]
all triggers
![Page 37: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/37.jpg)
PCLec08 / 37
TriggersTriggers
• Oracle triggers are used to include more processing power to the DBMS function for events which affect a database.
• In the following example a Trigger will be set which ensures that changes to employee records will only take place during business hours on working days ( security ?)
• See if you agree ...
![Page 38: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/38.jpg)
PCLec08 / 38
TriggersTriggers
Create trigger emp_permit_change
before
delete or insert or update
on emp
declare dummy integer;
begin
/* if today is a Saturday or Sunday, then return an error*/
if (to_char(sysdate, ‘dy’) = ‘sat’ or
to_char (sysdate, ‘dy’) = ‘sun’)
then raise_application_error (-20501,
‘May not change employee table during the weekend’);
end if;
![Page 39: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/39.jpg)
PCLec08 / 39
TriggersTriggers• Perhaps we need this as well :-
If (to_char(sysdate, ‘hh24’) < 8
or to_char(sysdate, ‘hh24’) >= 18)
then raise application_error (-20502,
‘May only change employee table during working hours’);
end if;
end;
which raises and interesting point - what happens with flexible time and enterprise bargaining ?
![Page 40: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/40.jpg)
PCLec08 / 41
Business Rules and Data ModellingBusiness Rules and Data Modelling
Business Rules are necessary to ensure that data in a database reflects accurately those conditions which apply to data in the real world environment
The following overheads introduce some additional material on this subject
![Page 41: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/41.jpg)
PCLec08 / 42
Business Rules and Data ModellingBusiness Rules and Data Modelling
Business Rules are at the core of commercial applications
If systems ‘obey’ the Business Rules, then– data will be correct– applications will function– users and management will be happy
Which leads us to– what is a business rule ?– where are they declared ?– where are they enforced ?
![Page 42: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/42.jpg)
PCLec08 / 43
Business Rules and Data ModellingBusiness Rules and Data Modelling
4 Proposed Levels of Business Rules
1. Single attribute (column) format definitions enforced by the database
The ‘payment’ column is an amount interpreted as dollars and cents
The Surname column is a text field expressed in the ASCII character set
The Amount_on_Hand column must never be less than 0
![Page 43: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/43.jpg)
PCLec08 / 44
Business Rules and Data ModellingBusiness Rules and Data Modelling
2. Multiple key column relationships
The ‘Brand Name’ column in the Brand table has a many to one relationship with the Manufacturer Name in the Manufacturer table
The Product foreign key in the Sales table has a many to one relationship to the Product primary key in the Product table
![Page 44: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/44.jpg)
PCLec08 / 45
Business Rules and Data ModellingBusiness Rules and Data Modelling
3. Relationships between Entities
This is declared on the entity-relationship diagram, but is not directly enforced by the database because the relationship is many-to-many
The employee is a sub-type of Person
Supplier supplies the Customer
![Page 45: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/45.jpg)
PCLec08 / 46
Business Rules and Data ModellingBusiness Rules and Data Modelling
4. Complex Business Logic
This relates to Business processes
It may be enforced at data entry time by a complex application such as this :-
“When an insurance policy has been committed but has not yet been approved by the underwriter, the administration date can be NULL, but when the policy has been underwritten, the administration date must be present (NOT NULL) and must be more recent than the agreement date”
![Page 46: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/46.jpg)
PCLec08 / 47
Business Rules and Data ModellingBusiness Rules and Data Modelling
From this it can be stated that :
The core database software manages the first 2 levels only - the single column format definitions and multiple column key relationships
Level 3 (relationships between entities) and Level 4 (complex business logic) should also be enforced as there is much valuable business content at this level (or should that be essential ?)
![Page 47: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/47.jpg)
PCLec08 / 48
Business Rules and Data ModellingBusiness Rules and Data Modelling
Entity relationship modelling (E/R modelling) seems to be a comprehensive language for mapping and describing relationships between entities.
E/R modelling is a diagrammatic technique which specifies
one-to-one
many-to-one and
many-to-many relationships among data elements
It is a logical model
![Page 48: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/48.jpg)
PCLec08 / 49
Business Rules and Data ModellingBusiness Rules and Data Modelling
Computer Associates’ Erwin converts an E/R diagram into data definition language declarations
These declarations define key definitions and join constraints
You can follow this up, and use an Erwin example at
www.cai.com
Gershwin, which you have probably met, is a simpler E/R modelling tool
![Page 49: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/49.jpg)
PCLec08 / 50
Business Rules and Data ModellingBusiness Rules and Data Modelling
E/R modelling is a useful technique for beginning the process of understanding and enforcing business rules
It does not provide a guarantee of completeness
E/R Modelling is incomplete in that the diagrams represent only what the designer decided to stress, or was aware of.
There is no test of an E/R diagram to determine if the designer has specified all possible one-to-one, one-to-many or many-to-many relationships.
![Page 50: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/50.jpg)
PCLec08 / 51
Business Rules and Data ModellingBusiness Rules and Data Modelling
E/R modelling is not unique
A given set of data relationships can be represented by a number of E/R diagrams
Many real data relationships are many-to-many.
The E/R diagram model does not enforce the M:N situations which may involve various conditions and degrees of correlation which would be useful (and perhaps essential) to include a business rules. E/R modelling provides no extensions to the basic many-to-many declaration
![Page 51: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/51.jpg)
PCLec08 / 52
Business Rules and Data ModellingBusiness Rules and Data Modelling
Many E/R models are ideal, not real
Many corporate models are based on ‘how things should be’
This is very useful in understanding the business
BUT if the model must be populated with real data
E/R models are rarely models of real data
There aren’t any tools for trawling over real data data sets and developing E/R models
The E/R model is invariably constructed and the data is ‘fitted’ into the model - and that means we need to clean data before it becomes resident in the model.
![Page 52: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/52.jpg)
PCLec08 / 53
Business Rules and Data modellingBusiness Rules and Data modelling
E/R models lead to complex schemas which mitigate against the objectives of Information Delivery
As an example, the E/R diagram which underpins Oracle Financials (a current Applications Package) requires approximately 2000 tables
SAP’s model can require 10,000 tables.
All of which tends to work against the objectives of easy to understand models, and high performance.
![Page 53: PCLec08 / 1 8. Integrity This session will be directed at the many and various aspects of ‘Integrity’ Integrity processes are included to ensure that the](https://reader035.vdocuments.mx/reader035/viewer/2022070410/56649edb5503460f94beb4c9/html5/thumbnails/53.jpg)
PCLec08 / 54
Business Rules and Data ModellingBusiness Rules and Data Modelling
Chris Date (An Introduction to Database Systems, 7th edition) has this to say :
‘the E/R model is incapable of dealing with integrity constraints or ‘business rules’ except for a few special cases.
Declarative rules are too complex to be captured as part of the business model and must be defined separately by the analyst/developer’.