Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational.

Lignende præsentationer


Præsentationer af emnet: "Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational."— Præsentationens transcript:

1 Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational Features of Oracle

2 Objekt-relationel DBMS2 Intro. til objekt-relationel DBMS Forsøg på at kombinere det bedste fra –relationel DBMS tabeller, SQL, kendt teknologi –objektorienteret tankegang mere virkelighedstro modellering Standardiseret i SQL3 / SQL99 Implementeret af bl.a. Oracle –men ikke helt som SQL3 standarden! Der findes rene objekt-orienterede DBMS'er –ingen relationelle features –ODL (Object Definition Language)

3 Objekt-relationel DBMS3 Typer, 166 Relationel DBMS –atomiske standard-typer number, char, varchar, etc. Objekt-relationel DBMS –atomiske standard-typer –egne typer (en slags klasser) UDT, user-defined data types

4 Objekt-relationel DBMS4 Indlejrede relationer, 167 Relationel DBMS –1NF alle attributter er atomiske Objekt-relationel DBMS –attributter kan være sammensatte f.eks. forekomster af egen datatype [heterogen] eller collection [homogen] (som Java: array, List) Fig. 4.17, side 168

5 Objekt-relationel DBMS5 Referencer, 169 Relationel DBMS –fremmednøgler kæder data sammen Objekt-relationel DBMS –referencer (nyt koncept) kæder data sammen ligner objekt-referencer i Java

6 Objekt-relationel DBMS6 OO features i SQL3 /SQL99, 449 Centreret omkring UDT'er –user-defined data types –tabel af type UDT –tabel med attribut af type UDT –Syntaks CREATE TYPE typeNavn AS ( att1 datatype1, att2 datatype2 ); –Figur 9.10, side 450

7 Objekt-relationel DBMS7 Metoder, 451 UDT'er kan have metoder (funktioner, procedurer) –Syntaks CREATE TYPE … METHOD name() RETURNS type; –Eksempel 9.21, side 451 CREATE METHOD metodeNavn (parameters) RETURNS type BEGIN … END;

8 Objekt-relationel DBMS8 Tabeller af UDT'er, 452 Syntaks –CREATE TABLE tabelNavn OF type Hver række i tabellen er en forekomst af UDT-typen.

9 Objekt-relationel DBMS9 Referencer, 452 Et objekt (af en UDT) kan referere til et andet objekt –a la referencer i Java 2 syntakser –att REF(typeNavn) att henviser til objekt af typen typeNavn –att REF(typeNavn) SCOPE tabelNavn att henviser til objekt af typen typeNavn i tabellen tabelNavn Eksempel 9.23, side 453 –bestMovie henviser til en objekt af typen MovieType i tabellen Movie

10 Objekt-relationel DBMS10 Mål for referencer, 453 Det man henviser til skal være "referer-bart" –kaldes "object identifier" –en slags moderne "primær-nøgle" Eksempel Fig. 9.11, side 454 2 typer object identifiers –SYSTEM GENERATED genereres af DBMS –DERIVED bruger primær-nøgle

11 Objekt-relationel DBMS11 Operationer på objekt-relationel data, 455 Følge referencer til andre objekter –obj -> reference Adgang til attributter i objekter –obj.attribut Metoder Ordning / sortering

12 Objekt-relationel DBMS12 Følge referencer til andre objekter, 455 Eksempel 9.26, side 456 –DEREF (movie) den tabel hvor i målet for referencen findes –star -> name følg referencen star til name (i movie) syntaks som i programmeringssproget C/C++

13 Objekt-relationel DBMS13 Adgang til attributter i objekter, 456 Eksempel 9.27, side 456 –Movie er en tabel af typen MovieType –m er et objekt af MovieType –Adgang til attributter (dot notation) m.year() m.title()

14 Objekt-relationel DBMS14 2 slags metoder, 457 Generator methods –en slags constructor –samme navn som UDT'en –ingen parametre –laver nyt, tomt objekt –Java analogi: default (parameter-løs) constructor Mutator methods –for enhver attribut x i en UDT er der en metode x(v), der sætter værdien af x til værdien v. –Java analogi: public set-metode til alle attributter Fig. 9.12, side 458 Forkortet notation: Parameter-fyldt constructor

15 Objekt-relationel DBMS15 Ordning / sortering af objekter, 458 Primitive datatyper (number, char osv.) har en orden / sortering –bruges i order by osv. UDT'er kan gives en orden / sortering –Fig. 9.13, side 460 Java analogier: –Object.equals (Object other) –java.util.Comparable

16 Objekt-relationel DBMS16 OO features i Oracle Oracle følger ikke SQL3 standarden mht. OO features! Centreret om UDT som SQL3, men syntaksen er anderledes. Efterfølgende er ikke omtalt i bogen –Taget fra Ullman: Object-Relational Features of Oracle http://www-db.stanford.edu/~ullman/fcdb/oracle/or- objects.html

17 Objekt-relationel DBMS17 Oracle: Defining types

18 Objekt-relationel DBMS18 Oracle: Constructing objects INSERT kan bruge objekter af typer. Alle typer har en constructor –typeNavn(value1, value2) INSERT INTO tabelNavn VALUES (att, typeNavn(value1, value2) ); Eksempel –INSERT INTO Lines, side 2

19 Objekt-relationel DBMS19 Oracle: Arv mellem typer En type kan arve egenskaber (attributter og metoder) fra en super-type –Nu bliver det meget mere interessant at lave arv (IS-A) i ER-diagrammer! Syntaks –CREATE OR REPLACE TYPE UNDER super-type ( … specielle egenskaber for sub- type … );

20 Objekt-relationel DBMS20 Oracle: Metoder Metoder skal –erklæres i create type eksempel CREATE TYPE LineType, side 2 hvis metoden skal bruges i en select-sætning, så skal den være READ-ONLY –PRAGMA RESTRIC_REFERENCES (metode, WNDS) »WNDS: write no database state –defineres i speciel create type body eksempel CREATE TYPE BODY, side 3

21 Objekt-relationel DBMS21 Oracle: Select fra typer, 3 Sædvanlig struktur –SELECT … FROM … WHERE Anvendelse af metoder (read-only) –eks side 3 Der skal bruges alias i FROM-delen! Man "dotter" sig ned til attributter –eksempel, side 3 Man kan selecte primitive data, objekter og referencer Man join'er ikke! Man vælger en central tabel og dotter (følger referencer) sig til de ønskede data SELECT si.movies.title FROM StarsIn si WHERE si.star.name = 'Anders';

22 Objekt-relationel DBMS22 Oracle: Referencer Ethvert objekt har et unikt objektID –skabes af Oracle Et objekt kan referere til andre objekter –syntaks att REF typeNavn att refererer til et objekt af typen typeNavn eksempel, side 4 Man kan selecte referencer til andre objekter –syntaks select REF (att) eksempel, side 4 Bemærk de 2 forskellige anvendelser af ordet REF.

23 Objekt-relationel DBMS23 Oracle: Insert INSERT i tabel uden REF typer –2 muligheder INSERT INTO … VALUES (Type(att, … ) ) –bruger default constructor på Type INSERT INTO … VALUES (att, …) –helt almindelig INSERT INSERT i tabel med REF typer –referencer skal selectes fra eksisterende data INSERT INTO tabel1 –select att, REF(att2) from tabel 2 where …

24 Objekt-relationel DBMS24 Oracle: Indlejrede tabeller En tabel kan indeholde tabeller!! –En attribut kan være en tabel!! Syntaks –CREATE TYPE typeNavn AS TABLE OF andenType –Eksempel CREATE TYPE PolygonType, side 5 indre tabeller gemmes ikke i ydre tabel, men i selvstændig tabel med eget navn –NESTED TABLE indreTabel STORE AS egetNavn –INSERT skal indsætte hele tabeller! Eksempel side 6

25 Objekt-relationel DBMS25 Oracle: Indlejrede tabeller, select, 6 Select fra indre tabel kan bruges i from- sætning –Eksempel SELECT ss.x …, side 6 –Nyt keyword THE til "indhegning" indre select- sætninger.


Download ppt "Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational."

Lignende præsentationer


Annoncer fra Google