Download More expressive data types

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Abstraction (computer science) wikipedia , lookup

Resource management (computing) wikipedia , lookup

Class (computer programming) wikipedia , lookup

Application Interface Specification wikipedia , lookup

Relational model wikipedia , lookup

C Sharp syntax wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

C++ wikipedia , lookup

Design Patterns wikipedia , lookup

Object-oriented programming wikipedia , lookup

Object lifetime wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Transcript
The Object Database
 Object databases integrate database technology with
the object-oriented paradigm
 In object databases, each entity of the real world is
represented by an object. Classical examples of objects
are:
 Electronic components, designed using a Computer Aided
Design (CAD) system;
 Mechanical components, designed using a Computer Aided
Manufacturing (CAM) system;
 Specifications and programs, managed in a Computer Aided
Software Engineering (CASE) environment;
 Multimedia documents, which includes text, images and sound,
managed by multimedia document managers.
--The Object Database--
1
Non-1NF Date
 Consider the table shown below.
--------------------ACME
| part | place
| ------|-----| liquor| Paris
| engine| Paris
|
----------|---------------DELCO
| part | place
| ------|-----| engine| Rome
....
--The Object Database--
2
Un-nest and Normalise Table
 The relational database solution - unnest

supplier | part | Place
--------------------ACME
| liquor | Paris
ACME
| engine | Paris
DELCO
| engine | Rome
....
 Normalize if necessary
 ACME appears twice
 What happened to structure?
--The Object Database--
3
A Data Structures Solution
 Imagine a nested record structure
Supplier
Parts-list
Parts
--------
---------
------------------
|ACME
|
| part1 ------>
| liquor | Paris |
|
|
|
|
------------------
| parts----------->
|
|
------------------
|
| part2 ------>
|
--------
| engine | Rome
|
---------
 Variable-sized records are difficult to maintain
 How to select?
 No tuples, so what is the key?
 Pointers are memory-only, how to store?
--The Object Database--
4
A Rectangle Data Type
 Database stores rectangles as four points
 What does the following query do?
SELECT *
FROM R, S
WHERE NOT(R.upperLeftX > S.lowerRightX OR
S.upperLeftX > R.lowerRightX OR
R.upperLeftY < S.lowerRightY OR
S.upperLeftY < R.lowerRightY);
 What does the following query do?
SELECT * FROM R, S
WHERE rectangle.overlaps(R, S);
--The Object Database--
5
Abstract Data Type (ADT)
 SQL has limited data types
 New data types are useful




Polygons
Images
Sounds
video
 Data type needs specifications for




Structure
Operations
Implementation
Optimization, e.g., indexing
--The Object Database--
6
O-O Concepts - Object
 Object
 A uniquely identifiable entity that contains both the attributes
that describe the state of a ‘real world’ object and the actions
that are associated with it.
 Encapsulates state
 Instance variables or attributes
 Complete encapsulation – can’t look inside and access
variables (public vs. private)
 Encapsulates behavior
 Operations
 Signature (specification) vs. method (implementation)
--The Object Database--
7
O-O Concepts, cont.
 Method
 Block of code
 Object performs method on self
 Constructor, destructor
 Message
 Communicates request to an object
 Parameters can be passed
 Class
 Blueprint for object
 An object is an instance of a class
 Inheritance
 Superclasses, subclasses, overloading
--The Object Database--
8
Definitions
 OODM
A logical data model that captures the semantics of objects
supported in object-oriented programming.
 OODB
A persistent, sharable collection of objects defined by an OODM.
 OODBMS
The manager of an OODB
--The Object Database--
9
Why OODB?
 From programming language point of view:
 permanent storage of objects (languages just support objects in
memory)
 sharing of objects among programs
 fast, expressive queries for accessing data
 version control for evolving classes and multi-person projects
--The Object Database--
10
Why OODB?
 From database point of view:
 More expressive data types (traditional DBs provide limited
predefined types)
 e.g., a desktop publishing program might model a page as a series
of frames containing text, bitmaps, and charts
 need composite and aggregate data types (e.g., structures and
arrays)
 More expressive data relationships
 many-to-one relationship (e.g., many students in one class)
 navigating across relationship links
 More expressive data manipulation
 SQL is relationally complete but not computationally complete
i.e., great for searching for lousy for anything else
– leads to use of conventional programming language plus
SQL-interface
– overhead of mapping from SQL to conventional languages
 Better integration with programming languages (esp. OO
languages)
11
 Encapsulation of code with data
Two Object-oriented Approaches
 Object-oriented (OODBMS)
 Hellerstein - “to add DBMS capabilities to an O-O language”
 Persistence, object lives beyond program execution
 PJava - persistent Java
 Several commercial products
 Object-relational (ORDBMS)
 Hellerstein - “extends a relational database with O-O features”
 Rich data types
 Inheritance
 Several commercial vendors, SQL3
--The Object Database--
12
OODBMS
 Advantages
 Removes impedance mismatch
 Long-lived transactions
 Enriched modeling
 Disadvanatages
 Lack of universal query language
 Lack of agreed upon standard
 Performance depends on class definition
--The Object Database--
13
ODMG 2.
 Object Database Management Group
 Consortium of Vendors: O2, ObjectStore, etc.
 Standard for OODBMS
 Portability
 Interoperability
 Comparison
 Optimization
 Object model
 ODL
 OQL
--The Object Database--
14
Object Model
 Atomic object
 Any user-defined object
 Class definition
 Properties (attributes and structure)
 (Binary) Relationships (to other objects)
 Operations
 Collection object
 Set, array, list, etc.
 Built-in
 Interface (virtual object)
 Inheritance
 Multiple inheritance only from interfaces
--The Object Database--
15
Object Model, cont.
 Extent – named, persistent collection of objects of the
same class/type
 One predefined extent for each class
 Key
 Unique for extent
 Factory object
 Constructor
--The Object Database--
16
Example
Class Person
{ extent persons
key ssn }
{ attribute struct {
string first, string last
} name;
attribute integer ssn
relationship Factory worksIn
inverse Factory::employeeOf
relationship set<Person> parentOf
inverse Person::childOf;
relationship set<Person> childOf
inverse Person::parentOf
};
--The Object Database--
17
Mapping EER to ODL
 Entity type -> class definition
 Attribute -> attribute
 Many-valued -> set attribute
 Composite -> struct attribute
 Key -> key
 Weak entity type
 Composite, multi-valued attribute in owning entity type
 Alternative, map to class
 Inheritance
 Simple, use class inheritance
--The Object Database--
18
Mapping EER to ODL, cont.
 Relationship types
 Binary (no attributes)
 Add relationship attributes to each side
 Use sets for many
 Ternary or with attributes
 Map to separate class
--The Object Database--
19
OQL
 SQL-like
 SELECT-FROM-WHERE
 FROM clause is only major difference
 Iterator variables
 p in Person
 Person p
 Person as p
 Path expressions (can appear in any clause)
 “dot” notation
 p.ssn
 Value of attribute ssn in object denoted by iterator variable
p
 Same notation for following relationships (few joins!)
 p.parentOf.ssn
--The Object Database--
20
Examples
 What are the social security numbers of people?
SELECT s
FROM person p,
p.ssn s;
 What are the social security numbers of children?
SELECT s
FROM person p,
p.childOf.ssn s;
 Alternatively
SELECT s
FROM person.childOf.ssn s;
--The Object Database--
21
Examples
 Create a structure for each social security number and
last name of a grandchild whose first name is ‘Frank’.
SELECT struct(last_name: g.name.last,
ssn: g.ssn)
FROM person p,
p.childOf c,
c.childOf g
WHERE g.name.first = ‘Frank’;
--The Object Database--
22
ORDBMS: Third Generation Manifesto
 Rich type system
 Inheritance is a good idea
 Use primary key when available
 Rules (triggers, constraints) are a major feature
 Database access via SQL, usually embedded
 SQL3
 Parts have been released, Oracle supports some SQL3 features
 Collections
 Recursion
--The Object Database--
23
SQL3 DDL
 Example
CREATE TABLE Student
(name VARCHAR(30),
image GIF,
phone setof{INTEGER},
);
 Phone is a set
 GIF is a user-defined data type
--The Object Database--
24
Multimedia databases
 Types of multimedia data




Images
Audio
Video
Documents
 Queries on multimedia data
 While the coding of multimedia data is a general problem, the
ability to query large amounts of multimedia data is a more
specific problem of multimedia databases.
 In general, it is possible to select a multimedia object only in
probabilistic terms.
--The Object Database--
25