1 / 25

Objekt-relationel DBMS

Objekt-relationel DBMS. 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. Intro. til objekt-relationel DBMS. Forsøg på at kombinere det bedste fra relationel DBMS

sen
Download Presentation

Objekt-relationel DBMS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objekt-relationel DBMS 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 Objekt-relationel DBMS

  2. 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) Objekt-relationel DBMS

  3. 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 Objekt-relationel DBMS

  4. 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 Objekt-relationel DBMS

  5. 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 Objekt-relationel DBMS

  6. 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 Objekt-relationel DBMS

  7. 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; Objekt-relationel DBMS

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

  9. 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 Objekt-relationel DBMS

  10. 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 Objekt-relationel DBMS

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

  12. 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++ Objekt-relationel DBMS

  13. 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() Objekt-relationel DBMS

  14. 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 Objekt-relationel DBMS

  15. 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 Objekt-relationel DBMS

  16. 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 Objekt-relationel DBMS

  17. Oracle: Defining types • Syntaks • CREATE OR REPLACE TYPE typeNavn AS OBJECT ( … ); • "OR REPLACE" er frivilligt • husk syntaksen "AS OBJECT" • DROP typeNavn • sletter typen • CREATE TABLE tabelNavn ( … att typeNavn …) • Eksempel, side 1 • Specielt for SQL*Plus create type ( …) / Oracle udfører create type sætningen!! Objekt-relationel DBMS

  18. 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 Objekt-relationel DBMS

  19. 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 … ); Objekt-relationel DBMS

  20. 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 Objekt-relationel DBMS

  21. 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'; Objekt-relationel DBMS

  22. 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. Objekt-relationel DBMS

  23. 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 … Objekt-relationel DBMS

  24. 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 Objekt-relationel DBMS

  25. 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. Objekt-relationel DBMS

More Related