Professional Documents
Culture Documents
THOMAS M. CONNOLLY
CAROLYN E. BEGG
Table of Contents
1. Introduction to Databases 5
2. Database Environment 16
3. The Relational model 36
4. Relational Algebra 44
5. SQL 58
6. SQL: Data Definition 120
8. Query-By-Example (QBE)
9. Database System Lifecycle 193
10. Database Analysis and the DreamHome Case Study 193
11. Entity–Relationship Modeling 213
12. Enhanced Entity–Relationship Modeling 213
13. Normalization 226
14. Advanced Normalization 226
15. Methodology—Conceptual Database Design 241
16. Methodology—Logical Database Design for Relational Model 241
17. Methodology—Physical Database Design for Relational Databases 249
18. Methodology—Monitoring and Tuning the Operational System 249
19. Security and Administration 257
20. Transaction Management 273
21. Query Processing
22. Distributed DBMSs—Concepts and Design
23. Distributed DBMSs—Advanced Concepts
24. Replication and Mobile Databases
25. Object-Oriented DBMSs—Concepts and Design 293
25. Object-Oriented DBMSs—Standards and Languages 293
26. Object-Relational DBMSs 293
27. Web Technology and DBMSs
28. Semistructured Data and XML
29. Data Warehousing Concepts
30. Data Warehousing Design
31. OLAP
32. Data Mining
Chapter 1
Introduction to Databases
Agenda
• File-based Systems
• History of Database
• Database Management Systems (DBMS)
File-based Definition
• Definition
– A collection of self-describing and integrated
data files
• System catalog
– Meta data
– Data dictionary
– Overhead data
• Data abstraction
Database Management System Facility
• Complexity
• Size
• Cost
– Software
– Hardware
– Conversion
• Performance
• Vulnerability
Points to Remember
• File-based Systems
• History of Database
• Database Management Systems (DBMS)
• Study the DreamHome case study presented in
Section 10.4 and Appendix A. In what ways
would a DBMS help this organization? What data
can you identify that needs to be represented in the
database? What relationships exist between the
data items? What queries do you think are
required?
• 1.11 Study the Wellmeadows Hospital case study
presented in Appendix B.3. In what ways would a
DBMS help this organization? What data can you
identify that needs to be represented in the
database? What relationships exist between the
data items?
Chapter 2
Database Environment
Agenda
• Three-Level ANSI-SPARC Architecture
• Database Languages
• Data Models
• Functions of DBMS
• Components of DBMS
• Teleprocessing
Three-Level ANSI-SPARC Architecture
• External level
– User's view
– Data gathering
• Conceptual level
– Organization view (entity, attribute, & relationship)
– Constraints and security
– Entity-relationship diagram
– Normalization
• Internal level
– Physical presentation
– Storage, index, compression, & encryption
– File organization
Database Schemas
• Database schema (intension) & database
instance (extension)
– External schemas (subschema)
– Conceptual schema (database schema)
– Internal schema
Mapping
• External/conceptual mapping
• Conceptual/internal mapping
• Example
Data Independence
• Logical data independence
• Physical data independence
Database Languages
• Data Definition Language (DDL)
– Structured Query Language (SQL)
• Data Manipulation Language (DML)
– Procedural DML
– Non-procedural DML
• Structured Query Language (SQL)
• Query-by-Example (QBE)
• Fourth-Generation Language
– Form, report, graphics, & application generators
Data Models
• Definition
– Integrated concept for describing data,
relationships and constraints
• Types
– Object-based data models
– Record-based data models
– Physical data models (internal structure,
ordering, & paths)
Object-Based Data Models
• Entity-relationship
– Entity, attribute, relationship
– Usage: documentation
• Object-oriented
– Object, class, subclass, inheritance, state
(attributes), behavior (methods or actions),
encapsulation, message, polymorphism
– Usage: building software
Record-Based Data Models
• Authorization control
• Command processor
• Integrity checker
• Query optimizer
• Transaction manager
• Scheduler
• Recovery manager
• Buffer manager
Teleprocessing - I
• Two-tier client-server architecture
– Client: user interface, business and data processing
logic
– Database server: data validation and database access
– Advantage
• Accessing to distributed database
• Increasing performance and consistency
• Lowering server and communication cost
• Supporting open systems architecture
Teleprocessing - II
• Three-tier client-server architecture
– Client: user interface
– Application server: business and processing logic
– Database server: data validation and database access
– Advantage
• Reducing client cost
• Software distribution
• Maintenance cost
• Balancing load
Teleprocessing - III
• Transaction processing (TP) monitor
– Transaction manager between client and server
– Advantage
• Transaction routing
• Distributed transaction for load balancing
Points to Remember
• Relation
• Attribute
• Domain
• Tuple
• Degree
• Cardinality
• Relational Database
Property
Relational Algebra
Agenda
• Relational Languages
• Relational Algebra
Relational Languages
• Procedural language
– Relational algebra
• Non-procedural language
– Relational Calculus
• Other Languages
– Transform-oriented languages
– Graphical languages
– Fourth-generation languages
– Fifth-generation languages
Relational Algebra
Intra Relation
Selection - horizontal
partition
– SELECT relation WHERE condition
[GIVING relation]
– condition(relation)
Projection - vertical partition
– PROJECT relation OVER (attribute,
attribute,...)[GIVING relation]
– attributes(relation)
Union-Compatible
Union - tuples in either of 2 union
compatible relations
– relation1 UNION relation2 [GIVING
relation]
– relation1 relation2
Difference - tuples in one union
compatible relation, but not other
—relation1 MINUS relation2 [GIVING
relation]
—relation1 - relation2
Union-Compatible
Intersection - tuples in both of 2
union compatible relations
– relation1 INTERSECT relation2
[GIVING relation]
– relation1 relation2
Any 2 Relations
1 J J 1
1 K K 3
1 L L
2 J
2 K
3 L
3 J
3 K
Relation R Relation C Relation T1
Jensen Ph.D.
Roger B.S.
Jensen
Smith
Roger
Points To Remember
• Relational Languages
• Relational Algebra
Chapter 5
SQL
Agenda
• AND OR
• NOT IN
• NOT IN BETWEEN
• IS NULL IS NOT NULL
• SOME ALL
• NOT BETWEEN
• LIKE '%' multiple characters
• LIKE ‘_’ single character
• Evaluation rule: left to right, brackets, NOT before
AND & OR, AND before OR
Example
• SELECT *
FROM faculty
WHERE dept = ‘MIS’ AND rank =
‘full professor’;
• SELECT *
FROM faculty
WHERE dept = ‘MIS’ OR rank =
‘full professor’;
• SELECT *
FROM faculty
WHERE dept = ‘MIS’ NOT rank =
‘full professor’;
• SELECT *
FROM class
WHERE room LIKE ‘b_s%’;
• SELECT *
FROM class
WHERE room NOT LIKE ‘bus%’;
• SELECT productid, productname
FROM inventory
WHERE onhand BETWEEN 50 and 100;
• SELECT customerid, discountrate
FROM sales
WHERE
discountrate LIKE ‘20#%’ ESCAPE ‘#’;
• SELECT companyid, companyname
FROM company
WHERE companyname BETWEEN
‘G’ AND ‘K’;
• SELECT productid, productname
FROM inventory
WHERE onhand NOT BETWEEN
50 and 100;
• SELECT companyid, companyname
FROM company
WHERE companyname NOT
BETWEEN ‘G’ AND ‘K’;
• SELECT facname
FROM faculty
WHERE dept IN (‘MIS’, ‘ACT’);
• SELECT facname
FROM faculty
WHERE rank NOT IN (‘assistant’,
‘lecture’);
• SELECT customername
FROM customer
WHERE emailadd IS NOT NULL;
• SELECT customername
FROM customer
WHERE creditlimit IS NULL;
SELECT - aggregate functions
• COUNT
• SUM
• AVG
• MIN
• MAX
Example
• SELECT COUNT(*)
FROM student;
• SELECT COUNT(major)
FROM student;
• SELECT COUNT(DISTINCT major)
FROM student;
• SELECT COUNT(stuid), SUM(credits),
AVG(credits), MAX(credits),
MIN(credits)
FROM student;
• How many different guests have made
bookings for August 2006?
• Hotel (hotelno, hotelname, city)
• Room (roomno, hotelno, type, price)
• Booking (hotelno, guestno, datefrom,
dateto, roomno)
• Guest (guestno, guestname, guestaddress)
• How many different guests have made
bookings for August 2006?
•
• SELECT COUNT(DISTINCT guestno)
• FROM booking
• WHERE (datefrom <= ‘8/31/06’) AND
• (dateto >= ‘8/1/06’);
SELECT - GROUP
• GROUP BY
• HAVING
Example
• SELECT major, AVG(credits)
FROM student
GROUP BY major;
• SELECT course#, COUNT(stuid)
FROM enrollment
GROUP BY course#;
Example
• SELECT major, AVG(credits)
FROM student
GROUP BY major
HAVING COUNT(*) > 2;
• SELECT course#, COUNT(stuid)
FROM enrollment
GROUP BY course#
HAVING COUNT(*) > 2;
• SELECT major, AVG(credits)
FROM student
WHERE major IN (‘mis’, ‘act’)
GROUP BY major
HAVING COUNT(*) > 2;
SELECT - ORDER BY
• ORDER BY
• ORDER BY ... DESC
Example
• SELECT facname, rank
FROM faculty
ORDER BY facname;
• SELECT facname, rank
FROM faculty
ORDER BY rank DESC,
facname;
SELECT - JOIN Tables
• UNION
• MINUS or EXCEPT
• INTERSECT
• Union compatible operator [ALL]
[CORRESPONDING][BY column,..] (ALL
includes duplicated rows in the result)
• Used between SELECT commands
Example
List stuid and stuname who attends SAC or CHICO
• (Select *
• From Viewing v, Property_for_rent p, Renter r
• Where v.Pno = p.Pno and r.Rno = v.Rno and
City=‘Sacramento’)
• EXCEPT CORRESPONDING BY Rno, Fname,
Lname
• (Select *
• From Viewing v, Property_for_rent p, Renter r
• Where v.Pno = p.Pno and r.Rno = v.Rno and
City~=‘Sacramento’)
Column Alias
• SELECT prodid, prodname,
(salesprice - goodofcost) profit
FROM product
ORDER BY prodid;
• SELECT prodid, prodname,
(salesprice - goodofcost) AS profit
FROM product
ORDER BY prodid;
SUBQUERY
• List stuid, stuname, and credits for the student
whose credits are larger than the average student
credits
• SELECT SUM(price)
FROM room r, hotel h
WHERE r.hotelno = h.hotelno AND
h.hotelname = 'Grosvenor’;
• The lost income from unoccupied rooms at the
Grosvenor Hotel today
• SELECT SUM(price)
FROM room r, hotel h
WHERE r.hotelno = h.hotelno AND
h.hotelname = 'Grosvenor’ AND
r.roomno NOT IN
(SELECT roomno FROM booking b, hotel h
WHERE b.hotelno = h.hotelno AND
(datefrom <= ‘SYSTEM DATE’
AND dateto >= ‘SYSTEM DATE’) AND
h.hotelname = 'Grosvenor');
• What is the lost income from
unoccupied rooms at each hotel today?
SQL
Agenda
• Steps
– Define terms of reference of study
– Shortlist two or three products
– Evaluate products (feature, comment, rating weight, and score)
• Selection Criteria
– Data definition
– Physical definition
– Accessibility
– Transaction handing
– Utilities
– Development
– Other features
Application Design
• Considerations
– Data
– Transaction type (retrieval, update, or mixture)
• User interface (forms & reports)
– Logical
– Simple
– Error handling
– Help
– Meaningful
– Consistency
– Status
Prototyping
• Type
– Requirement prototyping
– Evolutionary ptototyping
• Pros
– Define user’s requirements
– Quick
– Feasibility test
– Low cost and risk, new technology
• Cons
– Costs
Implementation
• Data definition language (DDL)
• Data manipulation language (DML) or
embedded DML
• Security control
Data Conversion and Loading
• Actual data conversion
• Bridge
Testing
• Learnability
• Performance
• Robustness (tolerant of user error)
• Recoverability
• Adapatability
CASE Tools
• Computer-Aided Software Engineering (CASE)
• Types
– Upper-Case: planning to design
– Lower-Case: implementing, test, performance
– Integrated-Case
• Benefits:
– Productivity (effectiveness and efficiency)
– Standard
– Integration (repository)
– Support structured methods
– Consistency
– Automation
Data Administration Role
• Planning
• Developing and maintaining standard
• Developing policy & procedure
• Design conceptual and logical database
Database Administration Role
• Physical database design
• Security & integrity control
• Performance monitoring
• Tuning database
Points To Remember
Entity-Relationship (E-R)
Model
Agenda
Normalization
Agenda
• Definition
• Purpose
• Terminology
• Types of Normal Form
• Examples
Definition
• Technique for producing a set of relations
having the real primary key(s)
Purpose
• Eliminate insertion anomalies
• Eliminate deletion anomalies
• Eliminate modification anomalies
Terminology
• Functional dependency
• Determinant
• Transitive dependency
Types of Normal Form
• First normal form
– No repeating group
• Second normal form
– every non-primary-key attribute is fully
functionally dependent on the whole primary
key
• Third normal form
– No transitive dependency
• Boyce-Codd normal form
– Every determinant is a candidate for primary
key
Types of Normal Form
• Fourth normal form
– No multi-valued dependency
• Fifth normal form
– No join dependency
Relation Holds Book Information
in a Bookstore
BOOKS ( TITLE, ISBN, AUTHOR,
PUB_NAME, PUB_ADD,
TOTAL_COPIES_ORDERED,
COPIES_IN_STOCK, PUB_DATE,
CATEGORY, SELL_PRICE, COST)
• Unique: ISBN, PUB_NAME
• BOOK (ISBN, TITLE, AUTHOR,
PUBLISHER_NAME,
TOTAL_COPIES_ORDEORED,
COPIES_IN_STOCK, PUBLICATION
DATE, CATEGORY, COST,
SELLING_PRICE)
• PUB (PBULISHER_NAME,
PUBLISHER_ADDRESS)
Relation Holds Student
Information in the Dormitories
• COLLDORM (STUNAME, STUID,
HOMEADD, HOMEPHONE,
DORMROOM, ROOMMATE_NAME,
DORMADD, STATUS, MEALPLAN,
ROOMCHARGE, MEALCHARGE)
• Unique: STUID, DORMADD,
DORMROOM, MEALPLAN
• STUDENT (STUID, STUNAME,
HOMEADD, HOMEPHONE,
DORMROOM, ROOMMATE_NAME,
STATUS, MEALPLAN)
• DORM(DORMROOM, DORMADD,
ROOMCHARGE)
• MEALS (MEALPLAN, MEALCHARGE)
Rental Relation
• ClientRental (clientNo, cName, propertyNo,
pAdd, rentStart, rentFinish, rent, ownerNo,
oName)
Inspection Relation
• Inspection (Pno, Padd, IdateAndItime,
Comment, Sno, Sname)
Work Relations
• W1 ( EMPID, EMPNAME, DATE_HIRED,
JOB_TITLE, JOB_LEVEL)
• W2 (EMPID, EMPNAME, JOB_TITLE,
RATING_DATE, RATER_NAME, RATING)
• W3 (EMPID, EMPNAME, PROJECT#,
PROJECT_NAME, PROJ_BUDGET,
EMP_MANGER, HOURS_ASSIGN)
• W4 (EMPID, EMPNAME,
SCHOOL_ATTENDED, DEGREE,
GRADUATION_DATE)
• W5 (EMPID, EMPNAME, SSNO,
DEPENDENT_NAME, DEPDENT_ADDRESS,
RELATION_TO_EMP)
Points To Remember
• Definition
• Purpose
• Terminology
• Types of Normal Form
• Examples
Chapters 15 &16
• Definition
• Conceptual database design
• Relational database - logical design
• Example
Definition
• Design methodology
– Structured design approach using procedures,
techniques, tools and documentation aids
• Conceptual database design
– Constructing an information model, independent from
all physical consideration for an enterprise
• Logical database design
– Building an organization database based on a specific
data model
Conceptual Database Design
• Entities
• Relationships
• Attributes (simple, no composite, no derived)
• Attribute domains
• Primary and candidate key attributes
– Minimal set of attributes
– Less change
– Uniqueness in the future
– Fewest characters
– Easy to use by users
Relational Database - Logical Design
• Draw ER model
• Review
– Always binary with1 to many relationship
– No complex relationship
– No redundant relationship
– No recursive relationship
– No relationship with attribute(s)
Relational Database - Logical Design
• Normalize relations
– Primary key
– Foreign key
– BCNF
• Add constraints
– Domain & enterprise
– Referential
– Entity
– legal
Relational Database - Logical Design
• Review
– Organization current & future needs
– All user current & future requirements
– Normalization (Boyce-Codd)
– Relationship (one-to-one or one-to-many)
– Redundancy
– Constraints
• User approval
• Document
Points To Remember
• Definition
• Conceptual database design
• Relational database - logical design
• Example
Chapters 17 & 18
Security
Agenda
• Database Security
• Countermeasure
– Computer-based
– Non-computer-based
• Challenge over the Internet
• Firewall
• Web security
Database Security
• Definition
– Mechanisms to protect the database against intentional or accidental threats
• Asset
– Hardware
– Software
– Communication network
– Database
– Individual (user, programmer, operator, administrator, and outsider)
• Threat
– Theft and fraud
• Consequence
– Loss of confidentiality
– Loss of privacy
– Loss of integrity
– Loss of availability
Countermeasures
• Computer-based controls
• Non-computer-based controls
Computer-based Controls - 1
• Authorization & authentication
– Password and account number
– Discretionary access control (grant and revoke)
– Mandatory access control (object, security
class, and clearance)
• Virtual views
Computer-based Controls - 2
• Logs or journaling
– Transaction log
– Violation log
• Check points
• Integrity
– Domain
– Enterprise
– Entity
– Referential
• Backup (redundant array of independent disks - RAID) &
recovery
• Audit
Computer-based Controls - 3
• Encryption or cryptosystem
– Encryption key
– Encryption algorithm
– Decryption key
– Decryption algorithm
– Symmetric encryption (Data Encryption
Standard (DES)
– Asymmetric encryption (RSA)
Example of Encryption - I
• Divide text into groups of 8 characters. Pad with
blank at end as necessary
• Select an 8-characters key
• Rearrange text by interchanging adjacent
characters
• Translate each character into an ordinal number
with blank as 0, A as 1, B as 2…
• Add the ordinal number of the key to the results
• Divide the total by 27 and retain the remainder
• Translate the remainder back into a character to
yield the cipher text
Example of Encryption - II
• Message: DATA COM
• Key: PROTOCOL
• A D A T C M O (switching)
• 01 04 01 20 03 00 13 15 (adatc mo)
• 16 18 15 20 15 03 15 12 (protocol)
• 17 22 16 40 18 03 28 27 (sum)
• 17 22 16 13 18 03 01 00 remainder
• Q V P M R C A SPACE
Example of Decryption - I
• Divide cipher text into groups of eight characters.
Pad with blanks at end as necessary
• Translate each cipher text alphabetic character and
the encryption key into an ordinal number
• For each group, subtract the ordinal number of the
key value from the ordinal number of the cipher
text
• Add 27 to any negative number
• Translate the number back to alphabetic
equivalents
• Rearrange the text by interchanging adjacent
characters
Example of Decryption - II
• Q V P M R C A SPACE
• 17 22 16 13 18 03 01 00 (qvpmrca )
• 16 18 15 20 15 03 15 12 (protocol)
Transaction Management
Agenda
• Transaction
• Concurrent Processing
• Backup and Recovery
Transaction - I
• Definition
– An action or actions to read or update the
contents of the database
• Types
– Committed
– Aborted
– Compensating
Transaction - II
• Property of Transactions (ACID)
– Atomicity (all or nothing)
– Consistency (state by database constraints and
applications)
– Isolation (independent)
– Durability (permanent)
Concurrent Processing
• Definition
• Problems
• Control
Concurrent Processing
• Multiprogramming
• Interleaved between two transactions
– CPU
– I/O
• Logical unit of work
Concurrent Processing Problem
• No problem
– Write different data
– Update different data
– Read the same data
• Problem
– Write the same data
– Update the same data
Concurrent Processing Problems
• Lost update
– Two transactions simultaneously update the same files
• Uncommitted update
– Transaction 2 uses the result updated by transaction 1
– Transaction 1 aborts and rolls back
– Transaction 2 commits
• Inconsistent Analysis
– Transaction 1 reads
– Transaction 2 reads and uses for calculation
– Transaction 1 updates and commits
– Transaction 2 updates and commits
SERIALIZABILITY
• Transaction results form concurrent
processing are the same as if stand-alone
sequential processing was used
• Ensure no anomalies arise from concurrent
processing
Concurrency Control
• Locking
• Deadlock
• Two-phase locking
• Timestamping
• Optimistic technique
Locking
• Types
– Shared Locks vs. Exclusive Locks
– Read Locks vs. Write Locks
– Upgrade vs. Downgrade
• Granularity
– Database
– file
– page
– record
– field
Deadlock
• Definition
– Tow or more transactions each wait for locks held by
other transaction
– Livelock
• Control
– Wait-Die
– Wound-wait
– Time out
– Conservative 2PL
Two-phase Locking
• Growing phase
– Get all locks
– Upgrade locks
• Shrinking phase
– Downgrade locks
– Once starting to release a lock - no more new
locks
Timestamping
• Timestamp
– unique identifier as relative starting time of a
transaction
– Read-timestamp & write timestamp
• Timestamp protocol
– Transactions with smaller timestamps get
priority in the event of conflict
– Transaction is only allowed on the item with
smaller read-timestamp or write timestamp
Optimistic Technique
• Read phase
• Validate phase
• Write phase
Database Recovery
• Definition
– Restoring the database to its correct state in the
event of a failure
• Reasons
– Physical (fire, flood, etc.)
– Sabotage
– Carelessness
– Hardware
– Software (application/system)
Database Backup
• Backup
– Copy of the database
• Transaction log
– Transaction ID, time, operation, object, before
image, after image, prior pointer, next pointer
• Checkpoint
– Synchronize transaction log and the database
– Write data from buffers to database on the disk
– Write checkpoint to log identify current
transaction(s)
Recovery Methods
• Reprocessing
– Record all transactions since last backup and
replay the following transactions
• Rollfoward
– Use the transaction log to change any
committed transactions on the database or since
last checkpoint
• Rollback
– Use transaction log to undo any aborted
transactions
Shadow Paging Method
• Current page table vs. Shadow page table
• Pros & cons
– Faster
– Less overhead
– Data fragmentation
– Reclaim inaccessible blocks
Points To Remember
• Properties of Transaction
• Concurrent Processing
• Backup and Recovery
Chapter 25 - 28
Object-Oriented Practices
Agenda
• Object-Oriented Concepts
• Terminology
• Object-Oriented Modeling Tips
• Object-Oriented Data Models and DBMSs
• OODBMS Manifesto
• Object Management Architecture
• Common Object Request Broker
Architecture
Object-Oriented Concepts
• Abstraction – encapsulation and information
hiding
– Identifying the essential aspects of an entity (Object)
– Abstract Data Type (ADT): interface part (operation)
implementation part (data structure)
• Encapsulation
– An object has data structure and operations
• Information hiding
– Internal details
– Data independence
Terminology
• Object Identity
• Classes
• Operations, methods & messages
• Inheritance
• Polymorphism
Object Identity (OID)
• System generated
• Unique to that object
• Invariant
• Independent of the values of its attributes
• Invisible to the user
• Advantages:
– Fast, efficient, independent of content, not
changeable by user
Class
• Definition
– Group of objects with similar properties
(attributes), common behavior (methods),
similar relationship to other objects, and
common semantics.
• Diagram
– Box: class name, attributes, operations
(methods)
• Superclasses & subclasses
• Generalization & specialization
Inheritance
• Definition
– A subclass inherits the attributes, operations,
and association of its superclasses
• Types
– Single inheritance: one superclass
– Multiple inheritance: two or more superclasses
– Repeated inheritance: common superclass
– Selective inheritance: limited number of
properties from the superclass
Operations Methods & Messages
• Operations
– Function or procedure may be applied to or by
objects in a class
• Methods
– The implementation of an operation for a class
• Messages
– Communication between objects to execution
of a method
Link & Association - 1
• Link
– A physical or conceptual connection between
objects
– Link attribute describes property of an
association
• Association
– A description of a group of links with common
structure and common semantics
– Has a name (roles for problem description)
• A link is an instance of an association
Link & Association - 2
• Qualified association
– The objects in a many role are partially or fully
disambiguated by an attribute called the
qualifier
– A small box on the end of the association line
near the source class
• Multiplicity
– The number of instances of one class that may
relate to a single instance of an associated class
– one, many, zero or one
Polymorphism
• Overloading
– The name of a method to be reused within a
class definition or across class definitions
• Overriding
– The name of property to be redefined in a
subclass
• Dynamic binding
– Runtime determination of object and method
Object Modeling Tips
• Scope
• Simplicity
• Layout of diagram
• Name (descriptive, crisp, and unambiguous)
• Association (foreign keys)
• Multiplicity
• Qualifiers
• Review
Object-oriented DBMSs
• Object-oriented data model (OODM)
– A logical data model of objects supported in
object-oriented programming
• Object-oriented database (OODB)
– A persistent and sharable collection of objects
defined by an OODM
• Object-oriented DBMS (OODBMS)
– The manager of an OODB
OODBMS Manifesto - 1
• Support complex objects
• Support object identity
• Support encapsulation
• Support types or classes
• Support inheritance between types or
classes
• Support dynamic binding
OODBMS Manifesto - 2
• Completed computational DML
• Extensible data types
• Data persistence
• Support very large databases
• Support concurrent users
• Backup & recovery
• Support simple way of querying data
Object Management Architecture
(OMA)
• Object Model (OM)
– A design-portable abstract model for communicating with OMG
(Object Management Group)-compliant object-oriented systems
• Object Request Broker (ORB)
– Handles distribution of messages between application objects
(software bus)
• Object Services (concurrency control, security, persistence
etc.)
• Common Facilities (printing, e-mail etc.)
• Common Object Request Broker Architecture (CORBA)
– Enable client-server interaction with a specific implementation of
ORB
Points To Remember
• Object-Oriented Concepts
• Terminology
• Object-Oriented Modeling Tips
• Object-Oriented Data Models and DBMSs
• OODBMS Manifesto
• Object Management Architecture
• Common Object Request Broker
Architecture