0% found this document useful (0 votes)
4 views85 pages

Module 1 Lecture Notes

The document outlines key concepts of the Relational Model, including the structure of relations (tables), terminology such as tuples (rows) and attributes (columns), and the importance of domains and constraints in ensuring data integrity. It details various types of constraints, including implicit, explicit, and application-based, as well as the operations for updating data within a relational database. Additionally, it introduces the concept of transactions, emphasizing properties like atomicity and consistency.

Uploaded by

ashwin M
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views85 pages

Module 1 Lecture Notes

The document outlines key concepts of the Relational Model, including the structure of relations (tables), terminology such as tuples (rows) and attributes (columns), and the importance of domains and constraints in ensuring data integrity. It details various types of constraints, including implicit, explicit, and application-based, as well as the operations for updating data within a relational database. Additionally, it introduces the concept of transactions, emphasizing properties like atomicity and consistency.

Uploaded by

ashwin M
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Lecture Notes: Relational Model Concepts (5.

1)

🔹 1. Introduction to Relational Model

 The Relational Model represents a database as a collection of


relations (tables).

 Each relation:

o Looks like a table of values

o Similar to a flat file (simple row structure)

📌 Key Idea:

 Each row (tuple) → represents a fact

 Each column (attribute) → represents a property

👉 Example:
STUDENT(Name, Student_number, Class, Major)

 Each row = one student

 Each column = student detail

🔹 2. Basic Terminology

Conce
Meaning
pt

Relation Table

Tuple Row

Attribut
Column
e

Data type / set of


Domain
values

🔹 5.1.1 Domains, Attributes, Tuples, Relations


🔸 3. Domain

 A domain is a set of atomic (indivisible) values.

📌 Properties:

 Has:

o Name

o Data type

o Format

o Constraints

📌 Examples:

 Phone numbers → 10-digit numbers

 GPA → Real values (0–4)

 Age → Integer (15–80)

 Department codes → {CS, ECON, PHYS}

🔸 4. Attribute

 An attribute is a column in a relation

 Represents a role played by a domain

👉 Example:

 Name → from domain Names

 Age → from domain Employee_ages


🔸 5. Relation Schema

 Defines the structure of a relation

📌 Notation:

R(A1, A2, A3, …, An)

📌 Example:

STUDENT(Name, Ssn, Home_phone, Address, Office_phone, Age, Gpa)

📌 Key Point:

 Degree (Arity) = Number of attributes


👉 Here, degree = 7

🔸 6. Relation (Instance / State)

 A relation is a set of tuples

📌 Notation:

r(R) = {t1, t2, t3, …, tn}

📌 Tuple:

t = <v1, v2, v3, …, vn>

 Each value belongs to a domain or may be NULL

🔸 7. Mathematical Definition

A relation is a subset of Cartesian product:

r(R) ⊆ dom(A1) × dom(A2) × … × dom(An)

📌 Meaning:

 Contains only valid combinations

 Not all combinations are allowed

🔸 8. Cardinality

 Number of tuples in a relation

📌 Maximum possible tuples:

|dom(A1)| × |dom(A2)| × … × |dom(An)|


🔸 9. Same Domain, Different Roles

 One domain can be used for multiple attributes

👉 Example:

 Home_phone

 Office_phone
(Both use same domain but different meaning)

🔹 5.1.2 Characteristics of Relations

🔸 10. No Ordering of Tuples

 Relations are sets

 Order of rows does NOT matter

👉 Important:

 Sorting does not change relation meaning

🔸 11. Ordering of Attributes

 Attributes are ordered in schema

 But logically, order is not important

🔸 12. Alternative Definition (Mapping)

 Tuple can be represented as:

(Attribute → Value)
👉 Example:

(Name → "John", Age → 20)

✔ Advantage:

 Order not required

 Self-describing data

🔸 13. Atomic Values (First Normal Form – 1NF)

 Each value must be atomic

 No:

o Multivalued attributes

o Composite attributes

👉 Example:
❌ Not allowed:

 Phone = {12345, 67890}

✔ Allowed:

 Separate tuples or relations

🔸 14. NULL Values

📌 Used when:

 Value is unknown

 Value not applicable

 Value missing

👉 Example:

 Office_phone = NULL

⚠️Important:

 NULL ≠ 0

 NULL ≠ empty string

❗ Issues:

 Comparisons with NULL are ambiguous


 Should be minimized in design

🔸 15. Interpretation of Relation

🔹 As Facts:

 Each tuple represents a real-world fact

👉 Example:

 A student’s record

🔹 As Assertion:

 Schema defines a general statement

 Tuple = specific instance

🔹 As Predicate:

 Relation behaves like a logical statement

👉 Example:

STUDENT(Name, Age)

Means:
“Name is a student with Age”

🔹 Closed World Assumption:

 Only stored data is true

 Missing data = false

🔸 16. Entity vs Relationship Representation

 Relations can represent:

o Entities → STUDENT

o Relationships → MAJORS(Student_ssn, Dept_code)


🔹 5.1.3 Relational Model Notation

🔸 17. Standard Notation

Symb
Meaning
ol

Relation
R, S
schema

r, s Relation state

t Tuple

🔸 18. Attribute Notation

R.A

👉 Example:

[Link]

🔸 19. Tuple Representation

t = <v1, v2, v3, …>

🔸 20. Accessing Values

t[Ai] or [Link]

👉 Example:

t[Name] = "Barbara Benson"

🔸 21. Subtuple

t[Ssn, Gpa, Age]

👉 Example:

<533-69-1238, 3.25, 19>

🔹 22. Summary (Quick Revision)


✔ Relation = Table
✔ Tuple = Row
✔ Attribute = Column
✔ Domain = Allowed values
✔ Degree = Number of attributes
✔ Cardinality = Number of tuples
✔ No ordering of tuples
✔ Values must be atomic (1NF)
✔ NULL represents missing/unknown data

🎯 Exam Tips

 Define:

o Domain, Tuple, Attribute, Relation

 Write:

o Mathematical definition

 Explain:

o Characteristics of relations

 Include:

o Examples (STUDENT relation)

 Mention:

o NULL and 1NF

Lecture Notes: 5.2 Relational Model Constraints & Database


Schemas

🔹 1. Introduction

 A relational database consists of multiple relations (tables).

 Data in these relations are interrelated.

 The database state = collection of all relation states at a given


time.

👉 To maintain correctness, we apply constraints (rules) on data.


🔹 2. Types of Constraints

📌 1. Implicit (Model-Based Constraints)

 Inherent in the relational model

 Example:

o No duplicate tuples

o Atomic values (1NF)

📌 2. Explicit (Schema-Based Constraints)

 Defined using DDL (Data Definition Language)

 Enforced by DBMS

👉 Examples:

 Domain constraints

 Key constraints

 Entity integrity

 Referential integrity

📌 3. Application-Based Constraints

 Cannot be defined in schema

 Enforced by application programs

👉 Examples:

 Salary ≤ Manager salary

 Max working hours per week

🔹 3. Domain Constraints

 Each attribute value must belong to its domain

📌 Key Points:

 Domain defines:

o Data type (int, string, float)

o Range (Age: 15–80)


o Format (Phone number)

👉 Example:

 GPA must be between 0 and 4

🔹 4. Key Constraints

🔸 Superkey

 A set of attributes that uniquely identifies tuples

👉 Example:

 {Ssn}, {Ssn, Name}

🔸 Key (Candidate Key)

 A minimal superkey

 No redundant attributes

✔ Properties:

1. Uniqueness

2. Minimality

🔸 Types of Keys

Type Description

Candidate
All possible keys
Key

Primary Key Selected key

May contain extra


Superkey
attributes

Unique Key Other candidate keys

📌 Example:

 STUDENT(Ssn, Name, Age)


✔ Candidate Key: Ssn
✔ Superkey: {Ssn, Name}
❌ Not a key (not minimal)

🔹 5. Constraints on NULL Values

 Attributes may be:

o NULL allowed

o NOT NULL

👉 Example:

 Name → NOT NULL

🔹 6. Relational Database Schema


📌 Definition:

A Relational Database Schema consists of:

S = {R1, R2, R3, …, Rn} + Integrity Constraints (IC)

📌 Database State:

DB = {r1, r2, r3, …, rn}

 Each ri is a relation state

 Must satisfy all constraints

✔ Valid vs Invalid State:

 Valid → satisfies all constraints

 Invalid → violates constraints

🔹 7. Naming of Attributes

 Same real-world concept → different names possible

o Example:

 Dnumber, Dno, Dnum

 Same name → different meanings possible

🔹 8. Entity Integrity Constraint

📌 Rule:

 Primary key cannot be NULL

📌 Reason:

 Primary key uniquely identifies tuples

👉 Example:

 Ssn must always have a value

🔹 9. Referential Integrity Constraint

📌 Definition:

 Ensures consistency between relations


👉 Rule:

 A foreign key value must:

o Match a primary key in another relation

o OR be NULL

🔹 10. Foreign Key

📌 Definition:

 Attribute in one relation that refers to another relation

📌 Conditions:

1. Same domain as referenced primary key

2. Value must exist in referenced relation

📌 Example:

 EMPLOYEE(Dno) → references DEPARTMENT(Dnumber)

👉 Meaning:

 Employee must belong to an existing department

🔹 Self-Referencing Foreign Key

 Foreign key referencing same relation

👉 Example:

 Super_ssn → references Employee Ssn


🔹 11. Referential Integrity Summary

Term Meaning

Referencing Contains foreign


relation key

Referenced Contains primary


relation key

🔹 12. Integrity Constraints in SQL

 Defined using DDL:

o PRIMARY KEY

o FOREIGN KEY

o UNIQUE

o NOT NULL

🔹 13. Other Constraints


🔸 Semantic Constraints (Business Rules)

 Not defined in schema

👉 Examples:

 Salary ≤ Manager salary

 Max working hours

✔ Enforced by:

 Application programs

 Triggers

 Assertions

🔸 State Constraints

 Conditions on database state

👉 Example:

 Age ≥ 18

🔸 Transition Constraints

 Conditions on state changes

👉 Example:

 Salary can only increase

🔹 14. Data Dependencies (Overview)

 Used in normalization

Types:

 Functional Dependency

 Multivalued Dependency

🔹 15. Summary (Quick Revision)


✔ Constraints ensure data correctness
✔ Three types:

 Implicit

 Explicit

 Application-based

✔ Important constraints:

 Domain constraint

 Key constraint

 Entity integrity

 Referential integrity

✔ Primary key:

 Unique

 NOT NULL

✔ Foreign key:

 Links relations

✔ Database schema:

 Set of relations + constraints

🎯 Exam Tips

 Define:

o Superkey, Key, Primary Key, Foreign Key

 Explain:

o Entity integrity

o Referential integrity

 Provide examples:

o STUDENT / EMPLOYEE relations

 Write:

o Differences between key and superkey

 Include:
o Types of constraints

Lecture Notes: 5.3 Update Operations & Transactions

🔹 1. Introduction
 Operations in the relational model are classified into:

o Retrieval operations → Fetch data (queries)

o Update operations → Modify data

👉 Update operations change database state

📌 Types of Update Operations:

1. INSERT – Add new tuples

2. DELETE – Remove tuples

3. UPDATE (MODIFY) – Change existing values

⚠️All operations must satisfy integrity constraints

🔹 5.3.1 INSERT Operation

🔸 Definition

 Adds a new tuple to a relation

🔸 Possible Constraint Violations

❌ 1. Domain Constraint

 Value not in domain or wrong data type

👉 Example:

 Age = "ABC" → invalid

❌ 2. Key Constraint

 Duplicate primary key value

👉 Example:

 Same Ssn already exists

❌ 3. Entity Integrity Constraint

 Primary key is NULL

👉 Example:

 Ssn = NULL
❌ 4. Referential Integrity Constraint

 Foreign key references non-existing tuple

👉 Example:

 Dno = 7 but no such department exists

🔸 Actions on Violation

 Reject insertion (default)

 Ask user to:

o Correct value

o Insert missing referenced tuple

o Set value to NULL

🔸 Example Summary

Operation Result

NULL primary Rejecte


key d

Rejecte
Duplicate key
d

Invalid foreign Rejecte


key d

Accepte
Valid tuple
d

🔹 5.3.2 DELETE Operation

🔸 Definition

 Removes tuple(s) from relation

🔸 Possible Violation

❌ Referential Integrity Only


 Occurs when:

o Deleted tuple is referenced by foreign keys

🔸 Example

 Deleting employee referenced in WORKS_ON → violation

🔸 Actions on Violation

✅ 1. RESTRICT (Default)

 Reject deletion

✅ 2. CASCADE

 Delete all related tuples automatically

👉 Example:

 Delete employee → delete related WORKS_ON records

✅ 3. SET NULL / SET DEFAULT

 Set foreign key values to:

o NULL

o Default value

⚠️Cannot set NULL if attribute is part of primary key

🔸 Summary Table

Option Description

Restrict Reject operation

Cascad
Delete dependent tuples
e

Set Replace foreign key with


NULL NULL
🔹 5.3.3 UPDATE Operation

🔸 Definition

 Modifies attribute values in existing tuples

🔸 Types of Updates

✔ Safe Updates

 Non-key, non-foreign key attributes

👉 Example:

 Salary change

❌ Problematic Updates

1. Domain Violation

 Invalid data type

2. Key Violation

 Duplicate primary key

3. Referential Integrity Violation

 Foreign key refers to non-existing tuple

🔸 Special Cases

📌 Updating Primary Key

 Equivalent to:

o DELETE + INSERT

👉 May cause:

 Key violation

 Referential integrity violation

📌 Updating Foreign Key


 Must:

o Match existing primary key

o OR be NULL

🔸 Actions

 Same as DELETE:

o Restrict

o Cascade

o Set NULL

🔹 5.3.4 Transaction Concept

🔸 Definition

 A transaction is a sequence of database operations executed as a


single unit

🔸 Key Properties

✔ Atomicity

 All operations succeed or none

✔ Consistency

 Database must remain valid

✔ Isolation

 Transactions do not interfere

✔ Durability

 Changes are permanent


🔸 Example: Bank Transaction

1. Read balance

2. Check sufficient funds

3. Deduct amount

4. Update database

👉 If any step fails → rollback

🔸 Transaction Characteristics

 Contains:

o Retrieval operations

o Update operations

 Ends in:

o Commit (success)

o Rollback (failure)

🔸 Real-World Usage

 Used in:

o Banking systems

o E-commerce

o OLTP systems

👉 Handles hundreds of transactions per second

🔹 6. Constraint Handling Summary

Operati
Possible Violations
on

Domain, Key, Entity,


INSERT
Referential

DELETE Referential only

UPDATE Domain, Key, Referential


🔹 7. Quick Revision Points ⭐

✔ INSERT → may violate all constraints


✔ DELETE → affects referential integrity
✔ UPDATE → depends on attribute modified
✔ Primary key update = DELETE + INSERT
✔ Foreign key must match existing tuple
✔ Transactions ensure consistency

🎯 Exam Tips

 Define:

o Insert, Delete, Update

 Explain:

o Constraint violations for each

 Write:

o Actions (Restrict, Cascade, Set NULL)

 Define:

o Transaction with example

 Mention:

o ACID properties

Object and Object-Relational Databases

🔹 1. Introduction

 Traditional databases (relational, hierarchical, network) are effective


for business applications.

 However, they struggle with complex data applications such as:

o CAD/CAM systems

o Multimedia databases

o Geographic Information Systems (GIS)

o Scientific and biological data


👉 To address this, Object-Oriented Databases (OODB/ODB) were
developed.

🔹 2. What are Object Databases (ODB)?

 Originally called Object-Oriented Databases (OODB)

 Now commonly referred to as Object Databases (ODB)

📌 Key Idea:

 Store data as objects, similar to object-oriented programming

🔹 3. Need for Object Databases

🔸 Limitations of Traditional Databases:

 Cannot handle:

o Complex structures

o Multimedia data

o Nested objects

o Behavior (methods)

🔸 Motivation:

1. Complex applications requirement

2. Integration with Object-Oriented Programming (OOP)


languages:

o C++

o Java

👉 Traditional databases create a mismatch called:


✔ Impedance mismatch problem

🔹 4. Key Features of Object Databases

✅ 1. Object Identity (OID)

 Each object has a unique identifier

 Independent of its values


✅ 2. Complex Object Structure

 Objects can contain:

o Other objects

o Nested structures

✅ 3. Encapsulation

 Combines:

o Data + Methods (operations)

✅ 4. Methods

 Functions defined within objects

👉 Example:

 Student object → calculate GPA method

✅ 5. Persistence

 Objects can be stored permanently in database

✅ 6. Inheritance

 Classes can inherit properties from other classes

✅ 7. Type and Class Hierarchies

 Supports:

o Generalization

o Specialization

🔹 5. Object-Relational Databases (ORDBMS)

📌 Definition:

 Relational databases extended with object-oriented features


📌 Why ORDBMS?

 Combine:

o Stability of relational model

o Power of object model

📌 Features Added:

 User-defined types (UDTs)

 Inheritance

 Methods

 Complex data types

🔹 6. SQL and Object Features

 Object features introduced in:

o SQL:1999

o Enhanced in SQL:2008

📌 Includes:

 Object types

 Structured types

 Methods in SQL

🔹 7. Relationship with Other Models

🔸 NoSQL Systems

 Also adopt some object-oriented features

🔸 XML Model

 Similar to object model:

o Hierarchical structure

o Nested elements
🔹 8. Object Database Systems

📌 Experimental Systems:

 Orion (MCC)

 OpenOODB (Texas Instruments)

 Iris (HP Labs)

 Ode (AT&T Bell Labs)

 ENCORE/ObServer (Brown University)

📌 Commercial Systems:

 GemStone

 ONTOS

 Objectivity/DB

 Versant

 ObjectStore

 Ardent Database

🔹 9. ODMG Standard

📌 ODMG (Object Data Management Group)

 Developed standard for object databases

📌 Version:

 ODMG 3.0

📌 Components:

Component Description

ODL Object Definition Language

OQL Object Query Language

Language Integration with programming


Component Description

Bindings languages

🔹 10. Object Database Concepts (Core Topics)

🔸 1. Object Identity

 Unique ID for each object

🔸 2. Object Structure

 Complex/nested objects

🔸 3. Encapsulation

 Data + behavior

🔸 4. Methods

 Operations on objects

🔸 5. Persistence

 Permanent storage

🔸 6. Inheritance

 Reuse of properties

🔹 11. Advantages of Object Databases

✔ Handles complex data


✔ Better integration with OOP
✔ Supports multimedia & scientific data
✔ Reduces impedance mismatch

🔹 12. Limitations
❌ Less popular than relational DBMS
❌ Lack of standardization (initially)
❌ Complex implementation
❌ Limited commercial adoption

🔹 13. Comparison

Relational
Feature Object DB
DB

Data Structure Tables Objects

Relationships Foreign keys Object references

Not Supported
Behavior
supported (methods)

Complexity
Limited Strong
Handling

🔹 14. Summary

 Object databases extend traditional models with:

o Objects

o Methods

o Inheritance

 ORDBMS combines relational + object features

 SQL standards now include object-oriented capabilities

 ODMG provides standard for object databases

🎯 Exam Tips

 Define:

o OODB, ORDBMS

 Explain:

o Need for object databases

 List:

o Features (OID, encapsulation, inheritance)


 Compare:

o Relational vs Object DB

 Mention:

o ODMG standard

Lecture Notes: 12.1 Object Database Concepts

🔹 12.1.1 Introduction to Object-Oriented Concepts

📌 Origin of Object-Oriented (OO) Concepts

 Derived from Object-Oriented Programming Languages


(OOPLs)

 Early languages:

o SIMULA (1960s) – foundation of OO

o Smalltalk (1970s) – pure OO language

o C++ – hybrid OO language

📌 Object Definition

An object consists of:

1. State (Attributes / Values)

2. Behavior (Operations / Methods)

👉 Example:
 Object: Employee

o State → Name, Salary

o Behavior → calculateSalary(), promote()

📌 Types of Objects

 Transient Objects → Exist only during program execution

 Persistent Objects → Stored in database and reused later

📌 Key Features of OO Databases

 Store persistent objects

 Support:

o Indexing

o Concurrency control

o Recovery mechanisms

 Integrate with OO programming languages

🔹 12.1.2 Object Identity (OID)

📌 Concept

 Each object has a unique Object Identifier (OID)

📌 Properties of OID

 Unique

 Immutable (never changes)

 Independent of attribute values

📌 OID vs Primary Key

Feature OID Primary Key

Dependen Based on
Independent
cy attributes

Changeabl No Yes
Feature OID Primary Key

Usually
Visibility Visible
hidden

📌 Objects vs Literals

 Objects → Have OID

 Literals → No OID (e.g., 50, "ABC")

🔹 12.1.3 Complex Type Structures

📌 Need

 Represent real-world complex objects in a single structure

📌 Type Constructors

1. Atomic Types (Basic Types)

 Integer, String, Boolean

 Example: Age = 25

2. Struct (Tuple)

 Composite structure

Name = {FirstName, LastName}

3. Collection Types

Type Description Example

Set Unordered, unique {A, B, C}

Unordered, duplicates
Bag {A, A, B}
allowed

List Ordered [A, B, C]

Array Fixed size A[10]


Type Description Example

Dictionar {ID:
Key-value pairs
y Name}

📌 Relationship Representation

 Using Object References (OIDs)

 Example:

o EMPLOYEE → refers to DEPARTMENT using OID

🔹 12.1.4 Encapsulation & Persistence

📌 Encapsulation

 Combines:

o Data (attributes)

o Operations (methods)
📌 Operation Structure

1. Signature (Interface)

o Name + parameters

2. Method (Implementation)

📌 Benefits

 Data hiding

 Independence

 Easy maintenance

📌 Access Mechanism

 Dot notation

o Example: [Link]()
📌 Persistence Mechanisms

1. Naming

 Assign unique name to object

2. Reachability

 Object becomes persistent if reachable from another persistent


object

📌 Extent

 Collection of persistent objects of a class

 Example:
ALL_EMPLOYEES → set(Employee)

🔹 12.1.5 Type Hierarchies & Inheritance

📌 Concept

 New types can be derived from existing types

📌 Example

PERSON: Name, Age


EMPLOYEE: Salary
STUDENT: GPA

👉 Then:

 EMPLOYEE ⊂ PERSON

 STUDENT ⊂ PERSON

📌 Benefits

 Code reuse

 Easy extension

 Logical organization
📌 Example: Geometry

GEOMETRY_OBJECT
├── CIRCLE (Radius)
├── RECTANGLE (Width, Height)
└── TRIANGLE (Sides)

📌 Extent Constraint

 Subtype objects must also belong to supertype extent

🔹 12.1.6 Advanced OO Concepts

📌 1. Polymorphism (Operator Overloading)

 Same operation, different behavior

👉 Example:

 Area():

o Circle → πr²

o Rectangle → l × b

📌 Binding Types

 Early Binding → Compile-time

 Late Binding → Runtime

📌 2. Multiple Inheritance

 Subtype inherits from multiple supertypes

👉 Example:

ENGINEERING_MANAGER = ENGINEER + MANAGER

⚠️Issue: Ambiguity

📌 3. Selective Inheritance

 Inherit only selected attributes/methods


🔹 12.1.7 Summary of Key Concepts

✅ Core Features of Object Databases

1. Object Identity (OID)

2. Complex Type Constructors

3. Encapsulation

4. Persistence (Naming & Reachability)

5. Type Hierarchies & Inheritance

6. Extents (Persistent Collections)

7. Polymorphism

🧠 Quick Revision Points

 Object = State + Behavior

 OID ≠ Primary Key

 Encapsulation = Data + Methods

 Persistence via:

o Naming

o Reachability

 Inheritance enables reuse

 Polymorphism allows flexibility

✍️Exam-Oriented Tips

 Always differentiate OID vs Primary Key

 Use diagrams for inheritance

 Provide examples for polymorphism

 Mention type constructors clearly


Lecture Notes: Object Database Extensions to SQL

🔹 1. Introduction to SQL Extensions

 SQL was originally designed for relational databases.

 Later versions such as SQL:99 introduced object-oriented


features.

 These extensions led to the Object-Relational Model.

 Further enhancements:

o SQL:2003 & SQL:2006 → XML support

o SQL:2008 → advanced object features

🔹 2. Key Object-Oriented Features in SQL

SQL incorporates the following object database concepts:

 Type constructors → ROW, ARRAY, SET, LIST, MULTISET


 Object Identity → using REF types

 Encapsulation → via UDTs and methods

 Inheritance → using UNDER keyword

🔹 3. User-Defined Types (UDTs)

📌 Definition

 UDT allows creation of custom complex data types.

📌 Syntax

CREATE TYPE TYPE_NAME AS (


attribute_name data_type,
...
);

📌 Features

 Can be used:

o As attribute types

o As table types

 Supports nested structures

📌 Example Concept

 STREET_ADDR_TYPE inside USA_ADDR_TYPE

 USA_ADDR_TYPE inside PERSON_TYPE

👉 This enables hierarchical object modeling.


🔹 4. Complex Objects & Collection Types

📌 Collection Types in SQL

 ARRAY

 SET

 LIST

 MULTISET

📌 Example

PHONES ARRAY[4] OF USA_PHONE_TYPE

📌 Important Functions

 CARDINALITY() → returns number of elements

 Access elements using:


o PHONES[1] → first element

🔹 5. ROW Type (Alternative to UDT)

 Used to define structured attributes directly.

📌 Example

ROW (
NUMBER VARCHAR(5),
STREET_NAME VARCHAR(25)
)

🔹 6. Object Identifiers (OID) Using REF

📌 Concept

 Each object can have a unique identifier.

📌 Syntax

REF IS SYSTEM GENERATED

📌 Options

 SYSTEM GENERATED → automatic unique ID

 DERIVED → based on primary key

📌 Benefit

 Similar to pointers → enables object referencing

🔹 7. Creating Tables from UDTs

📌 Concept

 Tables can be created from UDTs marked as INSTANTIABLE

📌 Key Point

 Non-instantiable UDTs → only used as attribute types

🔹 8. Encapsulation (Methods in UDTs)

📌 Concept

 UDTs can include functions (methods)


📌 Example

INSTANCE METHOD Age() RETURNS INTEGER;

📌 Types of Methods

 Internal (written in SQL)

 External (written in other languages)

📌 Access Levels

 PUBLIC

 PRIVATE

 PROTECTED

📌 Built-in Functions

 Constructor → TYPE_NAME()

 Observer → X.A

 Mutator → updates attribute values

🔹 9. Inheritance in SQL

📌 Concept

 Types can inherit attributes & methods

📌 Syntax

CREATE TYPE STUDENT_TYPE UNDER PERSON_TYPE;

📌 Key Rules

 All attributes are inherited

 Subtypes can override methods

 Subtype instance can act as supertype

📌 Example Hierarchy

 PERSON_TYPE
→ EMPLOYEE_TYPE
→ MANAGER_TYPE
→ STUDENT_TYPE

🔹 10. Table Inheritance


📌 Concept

 Tables can inherit from other tables

📌 Rule

 Tuple in subtable must exist in supertable

📌 Effect

 Insert in subtable → auto insert in supertable

 Supports IS-A relationship

🔹 11. Relationships Using REF

📌 Concept

 REF attribute acts like a foreign key (OID-based)

📌 SCOPE Keyword

 Restricts reference to a specific table

📌 Example Query

SELECT [Link]->NAME
FROM EMPLOYMENT E
WHERE [Link]->COMP_NAME = 'ABCXYZ';

📌 Operators

 . → access attributes

 -> → dereference reference

🔹 12. Advantages of Object Extensions

 Supports complex data modeling

 Reduces impedance mismatch with OOP

 Enables reusability via inheritance

 Improves data abstraction and encapsulation

🔹 13. Summary

Object extensions in SQL transform it from a purely relational system into


a powerful object-relational system by adding:
 UDTs

 Complex data structures

 Object identity

 Encapsulation

 Inheritance

 Reference-based relationships

12.3 The ODMG Object Model and Object Definition Language


(ODL)

🔹 1. Introduction to ODMG Standard

 Lack of standardization slowed adoption of object databases.

 A consortium called Object Data Management Group introduced:

o ODMG-93 (ODMG 1.0)

o ODMG 2.0
o ODMG 3.0

📌 Components of ODMG Standard

 Object Model

 Object Definition Language (ODL)

 Object Query Language (OQL)

 Language Bindings (C++, Java, etc.)

🔹 2. Overview of ODMG Object Model

📌 Purpose

 Provides a standard data model for object databases

 Equivalent to SQL for relational databases

🔹 3. Objects vs Literals

📌 Objects

 Have:

o Object Identifier (OID)

o State (value)

 Can change over time

📌 Literals

 Have:

o Value only (no OID)

 Immutable (constant)

🔹 4. Characteristics of Objects

Each object has five aspects:

1. Identifier (OID) → Unique system-wide ID

2. Name (optional) → Used to locate objects

3. Lifetime

o Persistent (stored in DB)


o Transient (temporary in program)

4. Structure

o Atomic (single object)

o Composite (collection/structured)

5. Creation

o Done using new() via factory objects


🔹 5. Types of Literals

📌 1. Atomic Literals

 Basic data types:

o integer, float, boolean, string, char

📌 2. Structured Literals

 Complex values (similar to tuples)

 Examples:

o Date, Time, Timestamp

📌 3. Collection Literals

 Collections without OID

 Types:
o set<T>, bag<T>, list<T>, array<T>, dictionary<K,V>

🔹 6. Key ODMG Concepts

Conce
Meaning
pt

Interfac Defines behavior


e (operations)

Class Defines state + behavior

Literal Defines state only

🔹 7. Object Operations

All objects inherit basic operations:

 copy() → duplicate object

 delete() → remove object

 same_as() → compare identity

📌 Example

O.same_as(P)
P = [Link]()

🔹 8. Inheritance in ODMG

📌 Types of Inheritance

1. Behavior Inheritance (Interface Inheritance)

 Syntax: :

 Only operations inherited

 Supports multiple inheritance

2. State + Behavior Inheritance

 Syntax: extends

 Attributes + methods inherited

 Only single inheritance allowed


🔹 9. Built-in Interfaces & Collections

📌 Collection Interface Operations

For collection object O:

 [Link]() → number of elements

 O.is_empty() → check empty

 O.insert_element(E)

 O.remove_element(E)

 O.contains_element(E)

📌 Iterator Operations

 [Link]()

 I.next_position()

 I.get_element()

🔹 10. Types of Collections

📌 1. Set

 No duplicates

 Operations:

o union, intersection, difference

📌 2. Bag

 Allows duplicates

📌 3. List

 Ordered collection

 Supports positional operations

📌 4. Array

 Indexed collection

 Fixed or resizable

📌 5. Dictionary

 Key-value pairs <K, V>

 Functions:
o bind(), lookup(), unbind()

🔹 11. Atomic (User-Defined) Objects

📌 Defined using:

class CLASS_NAME

📌 Components

1. Attributes

 Store values

 Example:

o Name, Ssn, Age

2. Relationships

 Represent links between objects

 Defined using relationship keyword

 Use inverse relationships

3. Operations

 Methods defined in class

 Example:

o add_emp(), reassign_emp()

🔹 12. Relationships in ODMG

 Only binary relationships supported

 Represented as inverse references


📌 Example Concept

 EMPLOYEE → Works_for → DEPARTMENT

 DEPARTMENT → Has_emps → EMPLOYEE

👉 Ensures automatic referential integrity

🔹 13. Extents, Keys, and Factory Objects

📌 Extent

 Collection of all objects of a class

 Example:

o ALL_EMPLOYEES

📌 Key
 Unique identifier within extent

 Can be:

o Single attribute

o Composite key

📌 Factory Object

 Used to create objects

 Method:

new()

🔹 14. Database in ODMG

 Each database:

o Has a name

o Contains persistent objects

📌 Operations

 bind(name, object)

 lookup(name)

 unbind(name)
🔹 15. Object Definition Language (ODL)

📌 Definition

 Schema definition language for object databases

📌 Features

 Language-independent

 Used to define:

o Classes

o Interfaces
👉 Not a programming language

🔹 16. Mapping Concepts in ODL

📌 Entity → Class

📌 Inheritance → extends

📌 Relationships → relationship

🔹 17. Example: UNIVERSITY Database Mapping

📌 Classes

 PERSON

 STUDENT

 FACULTY

 GRAD_STUDENT

📌 Inheritance

 STUDENT extends PERSON

 GRAD_STUDENT extends STUDENT

📌 Special Case

 M:N relationship → mapped as a class (GRADE)


🔹 18. Interfaces in ODL

📌 Example: GeometryObject

 Defines operations:

o area()

o perimeter()

📌 Key Points

 Cannot create objects directly

 Classes implement interfaces

🔹 19. Multiple Inheritance Rules

Type Allowed

Interface
✅ Multiple
inheritance
Type Allowed

❌ Single
Class inheritance
only

🔹 20. Advantages of ODMG Model

 Standardization of ODBMS

 Strong support for:

o Complex data

o Object identity

o Encapsulation

 Seamless integration with OOP languages

🔹 21. Summary

The ODMG object model provides:

 A standard object-oriented database framework

 Clear distinction between:

o Objects, literals, interfaces, and classes

 Advanced features:

o Inheritance

o Collections

o Relationships

o Object creation via factories

12.4 Object Database Conceptual Design


🔹 1. Introduction

 Object Database Design focuses on:

o Structure (data)

o Behavior (operations)

 Uses concepts from:

o Object-Oriented Database Systems

o Relational Database Systems

🔹 2. Differences Between ODB and RDB Design

📌 2.1 Relationship Representation

🟢 In Object Databases (ODB)

 Relationships represented using:

o Reference attributes (OID references)

 Can be:

o Single-valued

o Multi-valued (collections)

 Can be:

o Unidirectional

o Bidirectional (with inverse)

👉 Ensures referential integrity automatically

🔵 In Relational Databases (RDB)

 Relationships represented using:

o Foreign keys (value-based references)

 Always:

o Single-valued

 M:N relationships:

o Require separate relation (table)


⚠️Key Difference

Feature ODB RDB

Reference
OID-based Value-based
Type

Multivalued Allowed Not allowed

Direct or Separate
M:N Mapping
class table

📌 2.2 Relationships with Attributes

Problem in ODB

 Where to store relationship attributes?

o One direction → loss of symmetry

o Both directions → redundancy

Solution

 Create a separate class for the relationship


👉 Similar to relational approach

📌 2.3 Inheritance Handling

🟢 In ODB

 Built-in support:

o extends

o : (interface inheritance)

🔵 In RDB

 No direct support

 Requires:

o Mapping strategies (multiple tables, etc.)

📌 2.4 Operations (Behavior)

🟢 In ODB
 Must be defined during design phase

 Part of class definition

🔵 In RDB

 Defined later:

o Stored procedures

o Triggers

📌 2.5 Philosophical Difference

Aspect ODB RDB

Predefined
Behavior Flexible
(encapsulation)

Ad hoc
Queries Limited (controlled)
queries

Design
Data + Behavior Data only
Focus

🔹 3. Mapping EER Schema to ODB Schema

 Converts:

o EER Diagram → ODL Classes

 Focus:

o Structure first

o Then add operations

🔹 4. Mapping Algorithm (Step-by-Step)

✅ Step 1: Map Entity Types → Classes

 Create one ODL class per entity/subclass

📌 Attribute Mapping

 Single-valued → normal attributes

 Multivalued →
o set<T> → no duplicates

o bag<T> → duplicates allowed

o list<T> → ordered

 Composite → struct

📌 Additional Tasks

 Define:

o Extent

o Keys

✅ Step 2: Map Binary Relationships

📌 Add References

 As:

o Relationship properties

o OR reference attributes

📌 Direction Options

 One-way

 Two-way (with inverse)

📌 Based on Cardinality

Relations
Mapping
hip

1:1 Single reference

N:1 Single reference

1:N Collection

Collection OR separate
M:N
class

📌 With Relationship Attributes

 Use:
struct<reference, attributes>

⚠️Limitation:

 Cannot enforce inverse constraint

 May create redundancy

✅ Step 3: Add Operations

 Not present in EER → must be added manually

📌 Types of Methods

 Constructor → object creation

 Destructor → object deletion

 Other methods → enforce constraints

✅ Step 4: Map Subclasses (Inheritance)

 Use:

extends

📌 Result

 Subclass inherits:

o Attributes

o Relationships

o Methods

✅ Step 5: Map Weak Entity Types

Option 1

 Map as normal class

Option 2 (Alternative)

 Map as:

set<struct<...>>

👉 Treated as multivalued composite attribute


✅ Step 6: Map Categories (Union Types)

📌 Challenge

 No direct mapping in ODL

📌 Solution

 Create:

o A new class

o 1:1 relationships with superclasses

✅ Step 7: Map n-ary Relationships

📌 For n > 2

 Create separate class

📌 Include:

 References to all participating classes

📌 M:N Relationships

 Two options:

1. Collection-based mapping

2. Separate class (preferred if attributes exist)

🔹 5. Summary of Mapping

EER
ODB Mapping
Component

Entity Class

Attribute Attribute / struct

Multivalued set / list / bag

Reference /
Relationship
relationship

M:N Class or collection

Weak Entity Class or struct


EER
ODB Mapping
Component

Inheritance extends

Class +
Category
relationships

🔹 6. Key Advantages of ODB Design

 Direct support for:

o Complex objects

o Inheritance

o Relationships

 Better alignment with:

o Object-oriented programming

 Integrates:

o Data + behavior

🔹 7. Final Summary

Object database conceptual design:

 Extends EER modeling with object-oriented features

 Uses:

o Classes instead of tables

o References instead of foreign keys

 Requires:

o Early definition of operations

 Provides:

o Rich modeling for real-world applications


12.5 Object Query Language (OQL)

🔹 1. Introduction to OQL

 Object Query Language is the query language for the ODMG


object model.

 Designed to work with:

o C++

o Java

o Smalltalk
 Similar to SQL, but extended for object-oriented features.

🔹 2. Features of OQL

 Supports:

o Object identity

o Complex objects

o Relationships

o Inheritance

o Polymorphism

o Methods (operations)

🔹 3. Basic OQL Query Structure

📌 Syntax

SELECT ...
FROM ...
WHERE ...

📌 Example

SELECT [Link]
FROM D IN DEPARTMENTS
WHERE [Link] = 'Engineering';

📌 Key Points

 Similar to SQL

 Returns:

o bag (default)

o set (with distinct)

🔹 4. Database Entry Points

📌 Definition

 A named persistent object used to start a query

📌 Examples
 DEPARTMENTS → set<DEPARTMENT>

 STUDENTS → set<STUDENT>

🔹 5. Iterator Variables

📌 Purpose

 Used to traverse collections

📌 Syntax Options

D IN DEPARTMENTS
DEPARTMENTS D
DEPARTMENTS AS D

🔹 6. Query Results

 Can return:

o Single object

o Collection

o Complex structures

📌 Example

DEPARTMENTS;

➡ Returns: set<DEPARTMENT>

🔹 7. Path Expressions

📌 Concept

 Used to navigate object relationships

📌 Syntax

[Link]

📌 Examples

 CS_DEPARTMENT.Chair

 CS_DEPARTMENT.[Link]

 CS_DEPARTMENT.Has_faculty
⚠️Important Rule

 Cannot directly apply attributes to collections

❌ Invalid:

CS_DEPARTMENT.Has_faculty.Rank

✔ Correct:

SELECT [Link]
FROM F IN CS_DEPARTMENT.Has_faculty;

🔹 8. Using DISTINCT

SELECT DISTINCT [Link]


FROM F IN CS_DEPARTMENT.Has_faculty;

 Removes duplicates

 Result becomes set

🔹 9. Complex Query Results (STRUCT)

📌 Example

SELECT STRUCT(
name: STRUCT(
last_name: [Link],
first_name: [Link]
),
degrees: (
SELECT STRUCT(
deg: [Link],
yr: [Link],
college: [Link]
)
FROM D IN [Link]
)
)
FROM S IN CS_DEPARTMENT.[Link];

📌 Key Idea

 Supports nested structures

 Can return multi-level objects


🔹 10. ORDER BY Clause

ORDER BY gpa DESC, last_name ASC;

 Converts result into a list

🔹 11. Named Queries (Views)

📌 Syntax

DEFINE Has_minors(Dept_name) AS
SELECT S
FROM S IN STUDENTS
WHERE S.Minors_in.Dname = Dept_name;

📌 Usage

Has_minors('Computer Science');

🔹 12. Element Operator

📌 Purpose

 Extract single value from collection

ELEMENT(
SELECT D
FROM D IN DEPARTMENTS
WHERE [Link] = 'Computer Science'
);

🔹 13. Aggregate Functions

📌 Functions

 count()

 sum()

 avg()

 min()

 max()

📌 Example
COUNT(S IN Has_minors('Computer Science'));

🔹 14. Membership & Quantifiers

📌 Membership

'ELEMENT' IN collection

📌 Universal Quantifier

FOR ALL V IN C : condition

📌 Existential Quantifier

EXISTS V IN C : condition

📌 Example

EXISTS G IN GRAD_STUDENTS :
[Link] = 4;

🔹 15. Ordered Collection Operations

📌 Example: Highest Salary

FIRST(
SELECT STRUCT(facname: [Link], salary: [Link])
FROM F IN FACULTY
ORDER BY salary DESC
);

📌 Example: Top 3 Students

(SELECT ...
FROM S IN CS_DEPARTMENT.Has_majors
ORDER BY gpa DESC)[0:2];

🔹 16. Group By Clause

📌 Syntax

GROUP BY attr: expression

📌 Example
SELECT STRUCT(
dept_name,
number_of_majors: COUNT(partition)
)
FROM S IN STUDENTS
GROUP BY dept_name: S.Majors_in.Dname;

🔹 17. HAVING Clause

HAVING COUNT(partition) > 100;

📌 Example with AVG

SELECT dept_name,
avg_gpa: AVG(
SELECT [Link] FROM P IN partition
)
FROM S IN STUDENTS
GROUP BY dept_name: S.Majors_in.Dname
HAVING COUNT(partition) > 100;

🔹 18. Key Characteristics of OQL

 Object-oriented querying

 Supports:

o Complex/nested results

o Path traversal

o Method calls

 Strong integration with programming languages

🔹 19. Advantages of OQL

 Handles complex objects easily

 Supports inheritance and polymorphism

 More expressive than SQL for object databases

 Seamless integration with OOP


🔹 20. Summary

OQL is a powerful query language that:

 Extends SQL for object databases

 Uses:

o Path expressions

o Iterator variables

 Supports:

o Complex structures

o Aggregation

o Grouping

o Views
12.6 Overview of the C++ Language Binding in ODMG

🔹 1. Introduction

 The C++ binding in ODMG defines how:

o ODL (Object Definition Language)

o OQL concepts
are implemented in C++ programs.

 Goal:
👉 Make developers feel like they are using one unified language,
not separate DB + programming languages.

🔹 2. Key Components of C++ Binding

📌 1. Class Library

 Provides predefined classes for:

o Objects

o Collections

o Iterators

📌 2. Object Manipulation Language (OML)

 Used to:

o Retrieve objects

o Manipulate objects

 Based on C++ syntax


📌 3. Physical Pragmas

 Provide control over:

o Storage

o Indexing

o Memory management

o Object clustering

🔹 3. Naming Convention

 All ODMG-related classes use prefix:

d_

👉 Example:

 d_Object

 d_Set

🔹 4. Object Reference Handling

📌 Class:

D_Ref<T>

📌 Purpose:

 Represents reference to object of type T

📌 Features:

 Can refer to:

o Persistent objects

o Transient objects

🔹 5. Base Classes

📌 1. Object Class

D_Object<T>

 Defines operations for all objects

📌 2. Collection Class
D_Collection<T>

 Defines operations for collections

👉 Both are:

 Abstract classes

 Not instantiable

🔹 6. Collection Classes

ODMG Type C++ Class

set<T> D_Set<T>

list<T> D_List<T>

bag<T> D_Bag<T>

array<T> D_Varray<T>

dictionary<K, D_Dictionary<
V> T>

📌 Example

D_Set<D_Ref<STUDENT>>

➡ Set of references to STUDENT objects

D_Set<string>

➡ Set of strings

🔹 7. Iterator Support

📌 Class:

d_Iterator

 Used to traverse collections

🔹 8. Data Types in C++ Binding

📌 Basic Types
C++
ODMG Type
Binding

short d_Short

unsigned
d_Ushort
short

long d_Long

float d_Float

📌 Structured Types

 d_String

 d_Date

 d_Time

 d_Timestamp

 d_Interval

🔹 9. Relationship Representation

📌 Syntax Example

d_Rel_Ref<DEPARTMENT, Has_majors> Majors_in;


d_Rel_Set<STUDENT, Majors_in> Has_majors;

📌 Explanation

 Defines:

o Bidirectional relationship

 Majors_in and Has_majors are:

o Inverse relationships

🔹 10. Object Creation (OML)

📌 Using new operator

D_Ref<STUDENT> S = new(DB1, "John_Smith") STUDENT;

📌 Meaning

 Creates:
o Persistent object

o In database: DB1

o Name: "John_Smith"

🔹 11. Object Deletion

📌 Syntax

delete_object();

🔹 12. Object Modification

 Done using:

o Class methods (operations)

🔹 13. Extents in C++ Binding

📌 Class:

d_Extent<T>

📌 Example

D_Extent<PERSON> ALL_PERSONS(DB1);

📌 Meaning

 Creates:

o Collection of PERSON objects

 Type:

D_Set<PERSON>

🔹 14. Limitations of C++ Binding

⚠️1. No Key Constraint Support

 Must be handled manually in code

⚠️2. No Automatic Persistence via Reachability

 Objects must be explicitly declared persistent


🔹 15. Advantages of C++ Binding

 Seamless integration of:

o Database + programming

 Strong type safety

 Supports:

o Object identity

o Complex data structures

o Collections

🔹 16. Summary

The ODMG C++ binding:

 Maps ODL constructs → C++ classes

 Provides:

o Object references (D_Ref<T>)

o Collections (D_Set<T>, etc.)

o Iterators

 Enables:

o Object creation, deletion, manipulation

 Requires:

o Manual handling of constraints

You might also like