Relational Data Model

Report
บทที่ 3
ฐานข้ อมูลเชิงสั มพันธ์ และตัวแบบข้ อมูลเชิง
สั มพันธ์
อ. ดร. ชุรี เตชะวุฒิ
CS (204)321
ระบบฐานข้อมูล 1 (Database System I)
Outlines
1) ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
2) ตัวแบบข้อมูลเชิงสัมพันธ์ (Relational Data Model)
3) Relational Database Constraints and Relational Database Schemas
4) Update Operations on Relations
5) Relational Algebra
Relational Database
 Definition (by C.J. Date)
“ A relational database is a database that is perceived by its
users as a collection of tables. It is not just a database in which
the data is physically stored as tables. ”
Note: Relation is a mathematical term for a table.
Relational Data Model
 Concepts
 ตัวแบบข้อมูลหรื อตัวแบบฐานข้อมูลเชิงสัมพันธ์
เป็ นตัวแบบเชิงตรรกะที่แสดง
โครงสร้างข้อมูลและความสัมพันธ์ของข้อมูลแบบนามธรรม โดยมองปัญหาในระดับ
แนวคิดที่ไม่เจาะลึกลงไปถึงรายละเอียดในระดับกายภาพ
 ประกอบด้วย ส่ วนของโครงสร้าง (Structural part)
(Manipulative part)
constraints)
ส่ วนของการจัดดาเนิ นการ
และส่ วนของกฎความคงสภาพ (Set of integrity
 ตัวแบบข้อมูลเชิงสัมพันธ์มีหลายประเภท
แต่ที่นิยมใช้ปัจจุบนั คือตัวแบบฐานข้อมูล
เชิงสัมพันธ์ที่มีโครงสร้างข้อมูลแบบตาราง (Table) ที่เข้าใจง่าย
Relational Data Model
 Concepts
 The relational model of data is based on the concept of a Relation.
 A relation is a mathematical concept based on the ideas of sets.
 The strength of the relational approach to data management comes
from the formal foundation provided by the theory of relations.
 We review the essentials of the relational approach in this chapter.
Relational Data Model
 What is “Relation” ?
RELATION: A table of values
 A relation may be thought of as a set of rows.
 A relation may alternately be thought of as a set of columns.
 Each row represents a fact that corresponds to a real-world entity or
relationship.
 Each row has a value of an item or set of items that uniquely identifies
that row in the table.
 Sometimes row-ids or sequential numbers are assigned to identify the
rows in the table.
 Each column typically is called by its column name or column header or
attribute name.
Relational Data Model
 Example of Relation
STUDENT
Student code
Student name
Major
GPA
500510881
นฤมล มนตรี ภาพ
ปวีณ นาคสมบูรณ์
lสมถวิล ปรี ชาชาญ
สายใจ พันวลัย
MATH
2.98
BIO
2.75
CS
3.01
CS
2.50
500510214
500510654
500510223
Relational Data Model
 Relation properties
 A relation is a named, 2-dimentional table of data.
Not all tables qualify as relation.
 Every relation has a unique name.
 Each column has a unique name.
 No 2 rows are identical.
 Ordering of rows is not significant.
 Ordering of columns is not significant.
 All attribute values are atomic.
(There always exists precisely one value, never a set of values)
 Column values are of the same kind.
Relational Data Model
 Relation schema
R (A1, A2, .....An)
R is the name of relation.
Degree of relation is the numbers of attributes of its relation schema.
Relation schema R is defined over attributes A1, A2, .....An
 For Example:
CUSTOMER (Cust-id, Cust-name, Address, Phone#)
CUSTOMER is a relation defined over the four attributes Cust-id,
Cust-name, Address, Phone#, each of which has a domain or a set
of valid values.
Degree of relation is 4.
Relational Data Model
 Domain
“ A domain D is a set of atomic values, all of the same type. ”
All values in a column come from the same domain.
 For Example:
Cust-id : The set of valid 6-digit numbers.
Cust-name : The set of customer names.
Address : The set of home address where customers live.
Phone# : The set of 10-digit phone numbers valid in Thailand.
Relational Data Model
 Domain (Continued)
 A domain has a logical definition.
e.g., “USA_phone_numbers” are the set of 10 digit phone numbers valid
in the U.S.
 A domain may have a data-type or a format defined for it.
e.g., The USA_phone_numbers may have a format: (ddd)-ddd-dddd
where each d is a decimal digit.
e.g., Dates have various formats such as monthname, date, year or
yyyy-mm-dd, or dd mm,yyyy etc.
 An attribute designates the role played by the domain.
e.g., The domain Date may be used to define attributes “Invoice-date”
and “Payment-date”.
Relational Data Model
 Domain (Continued)
 Each attribute in the model should be assigned domain information
which includes:
- Data type
- Length
- Data format (e.g., Date format is dd/mm/yy)
- Range
- Constraints (special restrictions on allowable values)
- Null support
- Default value (if any)
 Tillmann-95: Domain includes
- Data type (e.g., tinyint represents numbers from -128 to 127.)
- Range (e.g., GPA rages from 0.00 to 4.00)
- Acceptable value (e.g., Gender has two values, male and female.)
Relational Data Model
 Relation instance
 A relation instance, r , of the relation schema R (A1, A2, .....An),
denoted by r(R) is a mathematical relation of degree n on the
domains dom(A1), dom(A2),…, dom(An), which is the subset of
the Cartesian Product of the domains that define R.
r ( R )  ( dom ( A1 )  dom ( A2 )  ...  dom ( An ))
R is also called the intension of a relation.
r is also called the extension of a relation.
Relational Data Model
 Cartesian product
r ( R )  ( dom ( A1 )  dom ( A2 )  ...  dom ( An ))
Define
dom(A1)
r(R)  dom(A1)
 {1,2}
and dom(A2)
 {3,4,5}
 dom(A2)
 {(1,3), (1,4), (1,5), (2,3), (2,4), (2,5)}
Relational Data Model
 Tuple
 A tuple is an ordered set of values.
 Each value is derived from an appropriate domain.
 Each row in the CUSTOMER table may be referred to as a tuple in the
table and would consist of four values.
 t = <632895, "John Smith", "101 Main St. Atlanta, GA 30332", "(404)
894-2000">
is a tuple belonging to the CUSTOMER relation.
r ( R )  t   v1 , v 2 ,..., v n 
 A relation may be regarded as a set of tuples (rows).
 Columns in a table are also called attributes of the relation.
Relational Data Model
 Tuple (Continued)
We refer to component values of a tuple t
by t[Ai] = vi (the value of attribute Ai for tuple t).
Similarly, t[Au, Av, ..., Aw] refers to the subtuple of t containing the values
of attributes Au, Av, ..., Aw, respectively.
eg., t[name] = < "John Smith">
t[name, address] = < "John Smith” ,
"101 Main St. Atlanta, GA 30332">
Relational Data Model
 การระบุวา่ attribute มาจาก relation ใด
จะใช้สัญลักษณ์ dot (.) ในรู ปแบบ
Relation name . Attribute name
 เช่น CUSTOMER.name
CUSTOMER.address
Relational Data Model
 Let S1 = {0,1}
 Let S2 = {a,b,c}
 Let
R  S1  S 2
 Then for example:
r ( R )  {  0 , a  ,  0 , b  ,  1, c  }
is one possible ‘state’ or ‘population’ or ‘extension’ r of the relation
R, defined over domains S1 and S2. It has three tuples.
Relational Data Model
 Terminology
Formal Terms
Informal Terms
Relation
Table
Attribute/Domain
Column
Tuple
Row
Domain
Values in a column or
pool of legal values
Schema of a relation
Table definition
Extension
Populated table
Degree
No. of columns
Cardinality
No. of rows
Primary key
Unique identifier
Relational Data Model
 Example
Relational Data Model
 Key fields
 Keys are special fields that serve two main purposes:
- Primary keys are unique identifiers of the relation. Examples
can use SSN as a primary key. This is how we can guarantee
that all rows are unique.
- Foreign key is a column or columns whose values are the
same as a primary key of another table.
 Keys can be simple (a single field) or composite (more than one
field)
 Keys usually are used as indexes to speed up the response to user
queries.
Relational Data Model
 ประเภทของคีย์
คียค์ ู่แข่งที่ถกู เลือกมาเพื่อใช้เจาะจงทัพเพิลของรี เล
ชัน และคียค์ ู่แข่งที่เหลือจะเรี ยกว่าคีย์สารอง (Alternate key)
 Primary key หรือ คีย์หลัก
เช่น ถ้าเลือก Student_code เป็ น คียห์ ลัก แล้ว email จะเป็ น คียส์ ารอง
Student code
Student name
email
500510881
นฤมล มนตรี ภาพ
ปวีณ นาคสมบูรณ์
lสมถวิล ปรี ชาชาญ
สายใจ พันวลัย
[email protected]
500510214
500510654
500510223
[email protected]
[email protected]
[email protected]
Relational Data Model
 ประเภทของคีย์
 Primary key หรือ คีย์หลัก
โดย คียห์ ลัก จะแสดงในเค้าร่ างรี เลชันด้วย การขีดเส้นใต้ เช่น
STUDENT(Student_code, Student_name, email)
คุณสมบัติของคียห์ ลักคือ
1. Uniqueness มีความเป็ นหนึ่ งเดียว คือ ค่าของคียห
์ ลักต้องไม่ซ้ ากันเลย
2.
Minimality คือประกอบด้วยจานวนแอททริ บิวต์นอ
้ ยที่สุดที่สามารถเจาะจง
ทัพเพิลหนึ่งในรี เลชันได้
Relational Data Model
 ประเภทของคีย์
คียท์ ี่ประกอบด้วยแอททริ บิวต์มากกว่า 1
ตัว เมื่อนาแอททริ บิวต์ท้ งั หมดมาผสมกัน ทาให้ได้ค่าที่ไม่ซ้ ากันเลย เช่น
 Composite key หรือ คีย์ประกอบ
GRADE(Student_code, course, grade)
Student code
GRADE
Course
Grade
500510881
204321
C
500510881
204111
B
500510881
204112
C
500510214
204361
A
500510214
204111
C
500510214
204112
C
Relational Data Model
 ประเภทของคีย์
กลุ่มของแอททริ บิวต์ของรี เลชันที่สามารถเจาะจง
(identify) ความเป็ นหนึ่ งเดียวของทัพเพิลที่แตกต่างจากทัพเพิลอื่นได้
 Superkey หรือ ซู เปอร์ คย
ี์
ทุกรี เลชัน่ จะมีซูเปอร์คีย ์ อย่างน้อย 1 ตัวเสมอ
แอททริ บิวต์ทุกตัวของรี เลชันจะเป็ นซูเปอร์คียโ์ ดยปริ ยาย
Relational Data Model
 ประเภทของคีย์
 Superkey หรือ ซู เปอร์ คย
ี์
จากตาราง STUDENT ซูเปอร์คียอ์ าจเป็ นได้ ดังนี้
{Student_code, Student name, Major, GPA}
{Student_code, Student name}
{Student_code, Student name, Major}
Student code
500510881
500510214
500510654
500510223
STUDENT
Student name
Major
นฤมล มนตรี ภาพ
ปวีณ นาคสมบูรณ์
lสมถวิล ปรี ชาชาญ
สายใจ พันวลัย
GPA
MATH
2.98
BIO
2.75
CS
3.01
CS
2.50
Relational Data Model
 ประเภทของคีย์
คือซูเปอร์คียท์ ี่เล็กที่สุด (Minimal superkey) ของรี เลชัน ซึ่ ง
ไม่มีเซ็ตย่อยที่ตวั มันเองเป็ นซูเปอร์ คีย ์ นัน่ คือ คียเ์ ป็ นซูเปอร์ คียท์ ี่ไม่สามารถตัดแอ
ททริ บิวต์ใดได้อีกโดยยังคงคุณสมบัติของทัพเพิลไว้เหมือนเดิม
 Key หรือ คีย์
บางรี เลชันอาจมีคียไ์ ด้มากกว่า 1 ตัว เช่นตาราง STUDENT มีคีย ์ 2 ตัว คือ
student_code และ email
เราสามารถใช้ตวั ใดตัวหนึ่งเป็ นคียท์ ี่เจาะจงทัพเพิลได้ ซึ่ งคียแ์ ต่ละตัวนี้เรี ยกว่า คีย์
คู่แข่ ง (Candidate key)
Relational Constraints
 What are relational constraints?
“ Constraints are conditions that must hold on all valid relation
instances. ” (Elmasri&Navathe, 2000)
“ Restrictions on data that can be specified on a relational database
schema. ” (Date, 2000)
 There are three main types of constraints:
 Key constraints
 Domain constraints
 Entity integrity constraints
 Referential integrity constraints
Relational Constraints
 Domain constraints
 The value of each attribute A must be an atomic value from the domain
dom(A).
 The data types associated with domains typically includes:
- Numeric: integer (short integer,long) or real number (float, double)
- Character: fixed-length string or variable-length string
- Date and time: e.g., dd/mm/yy hh:mm
- Logical: e.g., true or false, yes or no
- Timestamp
- Currency
Relational Constraints
 Entity integrity constraints
 Relational Database Schema:
A set S of relation schemas that belong to the same database. S is the
name of the database.
S = {R1, R2, ..., Rn}
 Entity Integrity:
The primary key attributes PK of each relation schema R in S cannot
have null values in any tuple of r(R). This is because primary key values
are used to identify the individual tuples.
t[PK]  null for any tuple t in r(R)
 Note: Other attributes of R may be similarly constrained to disallow null
values, even though they are not members of the primary key.
Relational Constraints
 Entity integrity constraints (Continued)
 A Null is created by making no entry at all, so a null denotes the
absence of a value.
 A null can have any of the following meanings:
- The value does not exist.
- The value exists, but it is not known.
- The value is unknown, or it is not applicable.
Relational Constraints
 Referential integrity constraints
 A constraint involving two relations (the previous constraints involve a
single relation).
 Used to specify a relationship among tuples in two relations: the
referencing relation and the referenced relation.
 Tuples in the referencing relation R1 have attributes FK (called foreign
key attributes) that reference the primary key attributes PK of the
referenced relation R2. A tuple t1 in R1 is said to reference a tuple t2 in
R2 if t1[FK] = t2[PK].
 A referential integrity constraint can be displayed in a relational
database schema as a directed arc from R1. FK to R2.
Relational Constraints
 Referential integrity constraints displayed on the COMPANY relational
database schema
Relational Constraints
 Summary of relational constraints
Domain constraints
Entity integrity constraints (rows)
Referential integrity constraints
(between tables)
Relational Constraints
 กฎความคงสภาพจะถูกใช้ในการนิ ยามฐานข้อมูลด้วยภาษานิ ยามข้อมูล (Data
definition language) ซึ่ งจะทาให้ระบบจัดการฐานข้อมูลบังคับใช้กลไกโดยอัตโนมัติ
เช่น ภาษานิยามข้อมูล ของ MySQL
create table STUDENT{
student_code char(9) NOT NULL,
student _name varchar(30) NOT NULL,
Domain integrity
Referential integrity
major char(4) Default ‘CS’,
Entity integrity
gpa float CHECK gpa>=0.00 AND gpa<=4.00,
Advisor_code char(3) REFERENCES ADVISOR (adv_code),
PRIMARY KEY (student_code)}
Relational Constraints
 กฎเกณฑ์ อน
ื่ ๆได้ แก่
- กฎเกณฑ์ทวั่ ไปเพื่อตรวจสอบความถูกต้องของข้อมูล (Static constraint or
Semantic integrity constraint) เช่น เงินเดือนของพนักงาน ต้องน้อยกว่าเงินเดือนของ
พนักงานที่เป็ น Supervisor
- กฎเกณฑ์ที่เกี่ยวข้องกับการปรับปรุ งค่าของข้อมูล (Dynamic constraint or
Transaction constraints) ซึ่ งอาจใช้ Trigger เป็ นตัวดาเนิ นการ เช่น การปรับค่าของ
เงินเดือนพนักงานต้องปรับเพิ่มขึ้นเท่านั้น ไม่สามารถลดลงจากปั จจุบนั ได้
Update Operations on Relations
 UPDATE operations consist of:
INSERT a tuple
DELETE a tuple
MODIFY a tuple
 Integrity constraints should not be violated by the update operations.
 Several update operations may have to be grouped together.
 Updates may propagate to cause other updates automatically. This
may be necessary to maintain integrity constraints.
Update Operations on Relations
 In case of integrity violation, several actions can be taken:
 Cancel the operation that causes the violation (REJECT option)
 Perform the operation but inform the user of the violation
 Trigger additional updates so the violation is corrected
(CASCADE option, SET NULL option)
 Execute a user-specified error-correction routine
e
Update Operations on Relations
 ในระหว่างการนิ ยามข้อมูล
ผูใ้ ช้หรื อผูบ้ ริ หารฐานข้อมูลจะเป็ นผูก้ าหนดว่า ต้องการให้
ระบบฐานข้อมูลแก้ไขสถานการณ์ในลักษณะใด จึงควรทาความเข้าใจเพื่อตอบคาถาม 3 ข้อ
ต่อไปนี้
1. ค่าของคียน์ อกเป็ นค่าว่างได้หรื อไม่
2. อนุญาตให้มีการลบทัพเพิลที่ถกู อ้างอิงโดยคียน์ อกหรื อไม่ และถ้ายอมให้ลบ
แล้วจะทาอย่างไรให้ขอ้ มูลยังคงมีความคงสภาพดังที่นิยามไว้
3. อนุญาตให้มีการแก้ไขค่าคียห์ ลักของทัพเพิลที่ถกู อ้างอิงโดยคียน์ อกหรื อไม่
และถ้ายอมให้แก้ไขแล้วจะทาอย่างไรให้คียน์ อกยังคงอ้างอิงถึงค่าใหม่ของคีย ์
หลักได้
e
Update Operations on Relations
 Insert operation
กรณี ที่ 1: การเพิ่มทัพเพิลโดยไม่ระบุค่าของแอททริ บิวต์ที่เป็ นคียห์ ลัก เช่น
 Insert <‘Cecilia’, ‘F’, ‘Kolonsky’, null, ‘1960-04-05’, ‘6357 Windy
Lane, Katy, TX’, F, 28000, null, 4> into EMPLOYEE.
This insertion violates the entity integrity constraint (null for
the primary key SSN), so it is rejected.
Update Operations on Relations
 Insert operation
กรณี ที่ 2: การเพิ่มทัพเพิลโดยกาหนดค่าของแอททริ บิวต์ที่เป็ นคียห์ ลักซ้ ากับค่าที่มีอยูแ่ ล้ว
เช่น
 Insert <‘Cecilia’, ‘F’, ‘Kolonsky’, 123456789, ‘1960-04-05’, ‘6357
Windy Lane, Katy, TX’, F, 28000, null, 4> into EMPLOYEE.
This insertion violates the entity integrity constraint (value
repetition of the primary key SSN), so it is rejected.
Update Operations on Relations
 Insert operation
กรณี ที่ 3: การเพิ่มทัพเพิลที่ค่าคียน์ อกไม่สามารถอ้างอิงถึงคียห์ ลักได้ เช่น
 Insert <‘Cecilia’, ‘F’, ‘Kolonsky’, 677678989, ‘1960-04-05’, ‘6357
Windy Lane, Katy, TX’, F, 28000, null, 8> into EMPLOYEE.
This insertion violates the referential integrity constraint
(DNUMBER in DEPARTMENT does not contain 8), so it is
rejected.
Update Operations on Relations
 Insert operation
กรณี ที่ 4: การเพิ่มทัพเพิลที่สอดคล้องกับกฎความคงสภาพ เช่น
 Insert <‘Cecilia’, ‘F’, ‘Kolonsky’, ‘677678989’, ‘1960-04-05’, ‘6357
Windy Lane, Katy, TX’, F, 28000, null, 4> into EMPLOYEE.
This insertion satisfies all constraints, so it is acceptable.
Update Operations on Relations
 Delete operation
กรณี ที่ 1: การลบทัพเพิลที่สอดคล้องกับกฎความคงสภาพ เช่น
 Delete the WORKS_ON tuple with ESSN = ‘999887777’ and
PNO = 10.
This deletion is acceptable.
Update Operations on Relations
 Delete operation
กรณี ที่ 2: ทัพเพิลที่ตอ้ งการลบยังถูกอ้างอิงจากคียน์ อก เช่น
 Delete the EMPLOYEE tuple with SSN = ‘999887777’
This deletion is not acceptable, because tuples in
WORKS_ON refer to this tuple. Hence, if the tuple is deleted,
referential integrity violations will result.
Update Operations on Relations
 Delete operation
เมื่อการลบทัพเพิลทาให้เกิดการละเมิดกฎความคงสภาพของการอ้างอิง ระบบจัดการ
ฐานข้อมูลจะเลือกปฏิบตั ิจากทางเลือก 4 ทาง ดังนี้
1. ปฏิเสธ (Reject) คาสั่ งถ้ามีคียน์ อกอ้างอิงถึงทัพเพิลนั้น หรื อ
ยอมให้ลบทัพเพิลถ้าไม่มีการอ้างอิงจากคียน์ อกใด ซึ่ งเป็ นการลบแบบมีเงื่อนไข เรี ยกว่า การ
ลบแบบเข้ มงวด (Restrict delete)
2. ลบทุกๆทัพเพิลที่คียน์ อกอ้างอิงถึง โดยจะลบกันเป็ นทอดๆ เรี ยกว่า การลบแบบต่ อเรียง
(Cascade delete)
ตัวอย่าง การลบในกรณี ที่ 2 เมื่อลบในตาราง EMPLOYEE แล้วจะลบแบบต่อเรี ยงใน
ตาราง WORKS_ON ที่มีการอ้างถึง SSN = ‘999887777’
Update Operations on Relations
 Delete operation
3. เปลี่ยนค่าแอททริ บิวต์ที่ทาให้เกิดการละเมิดกฎ เช่น การทา Nullify หรือ Set to null
คือการเปลี่ยนค่าของแอททริ บิวต์ขอ้ มูลนั้นให้เป็ น null แล้วจึงลบค่าของแอททริ บิวต์น้ นั
ตามต้องการ
ตัวอย่าง การลบค่าบางแผนกออกจากตาราง DEPARTMENT
Delete from DEPARTMENT where DNUMBER=‘5’
การลบจะถูกปฏิเสธเพราะมีทพั เพิลของ EMPLOYEE อ้างอิงทัพเพิลที่ DNO=‘5’
ในกรณี น้ ี จะทาให้ค่า DNO ในตาราง EMPLOYEE เป็ น null ก่อน แล้วจึงทาการลบ ค่า
บางแผนกออกจากตาราง DEPARTMENT ได้
Update Operations on Relations
 Delete operation
4. เปลี่ยนค่าแอททริ บิวต์ที่ทาให้เกิดการละเมิดกฎ เป็ นค่ าที่กาหนดให้ ค่าหนึ่ง (Default
value) มักใช้ในกรณี ที่ไม่อนุญาตให้ค่าของคียน
์ อกเป็ นค่าว่างหรื อกรณี ที่คียน์ อกเป็ นส่ วน
หนึ่งของคียห์ ลัก
หมายเหตุ ทุกครั้งที่มีการบังคับใช้กฎความคงสภาพของการอ้างอิง ผูใ้ ช้ตอ้ งระบุในขณะที่
นิยามฐานข้อมูลว่าต้องการใช้ทางเลือกใดเมื่อมีการลบข้อมูล
Update Operations on Relations
 Modify/Update operation
กรณี ที่ 1:การแก้ไขแอทริ บิวต์ที่ไม่ได้เป็ นคียห์ ลักหรื อคียน์ อก จึงไม่ละเมิดกฎความคง
สภาพของข้อมูล เช่น
 Update the SALARY of the EMPLOYEE tuple with SSN =
‘999887777’ to 28000.
This update is acceptable.
Update Operations on Relations
 Modify/Update operation
กรณี ที่ 2: การแก้ไขแอทริ บิวต์ที่เป็ นคียน์ อกและมีการอ้างอิงถึงคียห์ ลัก เช่น
 Update the DNO of the EMPLOYEE tuple with SSN =
‘999887777’ to 8.
This update is unacceptable. No primary key with value 8 in
DEPARTMENT.
คาสั่งนี้ถกู ปฏิเสธเพราะค่าใหม่น้ ีไม่สามารถอ้างอิงถึงคียห์ ลักที่มีอยูแ่ ล้วได้
Update Operations on Relations
 Modify/Update operation
กรณี ที่ 2: ค่าที่ตอ้ งการแก้ไขยังถูกอ้างอิงจากคียน์ อก เช่น
 Update the SSN of the EMPLOYEE tuple with SSN =
‘999887777’ to ‘987654321’.
This update is unacceptable, because it violates primary key
and referential integrity constraints.
Update Operations on Relations
 Modify/Update operation
เมื่อการแก้ไขข้อมูลทาให้เกิดการละเมิดกฎความคงสภาพของการอ้างอิง ระบบจัดการ
ฐานข้อมูลจะเลือกปฏิบตั ิจากทางเลือก 2 ทาง ดังนี้
1. ยอมให้มีการแก้ไขแบบมีเงื่อนไข คือ อนุญาตให้มีการแก้ไขคียห์ ลักเมื่อไม่ปรากฏคีย ์
นอกใดที่อา้ งอิงคียห์ ลักนี้ เรี ยกว่า การแก้ไขแบบเข้ มงวด (Restricted update)
2. ยอมให้แก้ไขค่าคียห์ ลักที่ถกู อ้างอิง โดยจะไปแก้ไขค่าคียน์ อกที่อา้ งถึงทุกตัวให้มีค่า
เท่ากับค่าใหม่ของคียห์ ลักนั้น เรี ยกว่า การแก้ไขแบบต่ อเรียง (Cascade update)
และจะแก้ไขไปยังค่าของคียน์ อกในทุกๆรี เลชัน่ ที่สัมพันธ์กนั ให้มีค่าตรงกัน
ตัวอย่าง
 Update the DNUMBER of the DEPARTMENT from ‘1’ to ‘2’.
All tuple of the EMPLOYEE with DNO=‘1’ will be updated to ‘2’.

similar documents