Објектно-релационе базе података
DESCRIPTION
Објектно-релационе базе података. Немања Трбовић Радовић Петар Милош Војиновић. Објектно-релационе базе података. Пререлационе базе - прва генерација Релационе базе - друга генерација Објектно-релационе базе - ? Примери. Објектно-релационе базе података. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/1.jpg)
Објектно-релационе базе података
Немања Трбовић
Радовић Петар
Милош Војиновић
![Page 2: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/2.jpg)
Објектно-релационе базе података
• Пререлационе базе - прва генерација
• Релационе базе - друга генерација
• Објектно-релационе базе - ?
• Примери
![Page 3: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/3.jpg)
Објектно-релационе базе података
• TYPE RECTANGLE POSSREP ( X1 RATIONAL, Y1 RATIONAL,
X2 RATIONAL, Y2 RATIONAL)……
• OPERATOR OVERLAP (R1 RECTANGLE , R2 RECTANGLE )
RETURNS BOOLEAN;
RETURN ( THE_X1 (R1)<=THE_X2(R2) AND
THE_Y1 (R1)<=THE_Y2(R2) AND
THE_X2 (R1)>=THE_X1(R2) AND
THE_Y2 (R1)>=THE_Y1(R2) AND );
END OPERATOR;• RECTANGLES
WHERE OVERLAP ( R , RECTANGLE (0.0, 0.0, 1.0, 1.0)
![Page 4: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/4.jpg)
The First Great Blunder
• Потребно је дати одговор на питање шта је у релационом свету оно што је класа у објектном.
• domain=object class
• relvar=object class
![Page 5: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/5.jpg)
The First Great Blunder
CREATE TABELE EMP
(EMP# CHAR(5) NOT NULL,
ENAME CHAR(20) NOT NULL,
SAL NUMERIC NOT NULL,
HOBBY ACTIVITY NOT NULL,
WORKS_FOR COMPANY NOT NULL ) ;
![Page 6: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/6.jpg)
• Potrebno je dodati:– Izrazi za put(emp.works_for.state)– Literali za n-torke I relacije(srediti sintaksu)– Operatri za poredjenje(podniz ili nesto drugo)– Operatori za prolazak kroz hijerarhiju– Mogucnost da se ubace select i where– Mogucnost da se pristupi pojedinacnim
komponentama cije su vredonsti n-torke ili vrednosti
![Page 7: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/7.jpg)
1. Nije klasican ucaureni objekat
2. Tipovi podataka
3. Problem sa upoznavanjem korisnika sa pokazivacima
4. Projekcija bi trebalo da je klasa ali nije
5. Problem definicije domena
![Page 8: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/8.jpg)
The Second Great Blunder
• Логичка последица прве грешке• Ситуација после прве грешке
– н-торке и релације ( противимо се идеји да они морају да имају специфичне вредности које су садржане у другим(базним) рел.пром. и томе да они ,у ствари, садрже показиваче на н-торке или релације
– Додељивање метода рел. пром. ( противимо се томе сто се методе користе само у бези са рел.пром. , а не и са типовима или доменима)
– Подкласе и надкласе ( косе се са правилним типовима наслеђивања )
![Page 9: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/9.jpg)
The Second Great Blunder
– Изрази везани за путање (нису довољно опширни да би изразили ланце показивача)
– Литерали за н-торке и релације (неопходни, али их је потребно проширити у селекторе)
– Оператори за поређење релација– Оператори за пролазак кроз класну хијерархију
(велика замерка: кршење релационог модела )– Додавање метода SELECT и WHERE – Приступ идивидуалним компонентама унутар
атрибута чије су вредности н-торке или релације
![Page 10: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/10.jpg)
The Second Great Blunder
• Друга грешка је везана за кршење формализма и саме дефиниције показивача
• Показивачи и правилан модел наследђивања нису компатибилни
• Пример
![Page 11: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/11.jpg)
The Second Great Blunder
VAR E ELIPSE;VAR XC PTR_TO_CIRCLE;
E := CIRCLE (LENGTH (5.0), POINT (0.0 , 0.0)) ;
XC :=TREAT_DOWN_AS_PTR_TO_CIRLCE(PTR_TO(E));
THE_A(E) := LENGTH (6.0);
![Page 12: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/12.jpg)
Проблеми имплементације
• Парсирање и провера типа података– Информације које се односе на операторе и типове
дефинисане од стране корисника се чувају у системском каталогу
– Компајлер мора да буде поново написан да би могао да добија информације о типовима и операторима из каталога
• Оптимизација – Трансформације израза
– Селекција
– Цена формула
![Page 13: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/13.jpg)
Проблеми имплементације
• Структуре за складиштење података– Нове структуре за складиштење података– Индекси на подацима који су дефинисани од стране
корисника– Индекси на резултатима операција
![Page 14: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/14.jpg)
Погодности правилног приступа
Query
No query
2
1
4
3
Simple data Complex data
![Page 15: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/15.jpg)
Погодности правилног приступа
• Ad hoc упити• Методи који пореде класе• Динамички дефинисане класе• Двоструки приступ• Транзиције• Семантичка оптимизација• Релације степена већег од 2• Правила страних кључева• Могућност оптимизације• Итд.
![Page 16: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/16.jpg)
Погодности правилног приступа
• Брига о показивачима није више у домену корисника
• Дилема у вези објеката је нестала• Добробити капсилирања и даље постоје, али
за скаларне вредности унутар релације, али не и за саме релације
• Рационални системи сада могу користе сложене апликације као што су CAD/CAM
![Page 17: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/17.jpg)
Објекти у SQL-у
CREATE TYPE DEPT_TYPE
AS ( DEPT# CHAR(3),
DNAME CHAR(25),
BUDGET MONEY ) …
REF IS SYSTEM GENERATED ;
CREATE TABLE DEPT OF DEPT_TYPE
( REF IS DEPT_ID SYSTEM GENERATED ,
PRIMARY KEY ( DEPT# ) ) … ;
![Page 18: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/18.jpg)
Објекти у SQL-у
CREATE TABLE EMP
( EMP# CHAR(5) NOT NULL,
ENAME CHAR(25) NOT NULL,
SALARY MONEY NOT NULL,
DEPT_ID REF (DEPT_TYPE) SCOPE DEPT
REFERENCES ARE CHECKED
ON DELETE CASCADENOT NULL,
PRIMARY KEY ( EMP# ) ) ;
![Page 19: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/19.jpg)
Објекти у SQL-у
• наћи број одељења у коме ради запослени Е1
SELECT DEPT_ID -> DEPT# AS DEPT#FORM EMPWHERE EMP# = ‘E1’ ;
• наћи одељење у коме ради запослени Е1
SELECT DEREF ( DEPT_ID ) AS DEPTFROM EMPWHERE EMP# = ‘E1’ ;
• наћи бројеве запослених у одељењу Д1
SELECT EMP#FROM EMPWHERE DEPT_ID -> DEPT# = ‘D1’ ;
![Page 20: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/20.jpg)
Објекти у SQL-у
• Подтабеле и надтабеле– Табела Б може да буде подтабела табеле А ако и
само ако су оне обе табеле неког типа и ако је тип табеле Б подтип типа над којим је дефинисана табела А
CREATE TYPE EMP_TYPEAS (EMP# … , DEPT# … , ) … REF IS SYSTEM GENERATED ;
CREATE TYPE PGMR_TYPE UNDER EMP_TYPEAS ( LANG … ) ;
CREATE TABLE EMP OF EMP_TYPE (REF IS EMP_ID SYSTEM GENERATED, PRIMARY KEY (EMP#) ) … ;
CREATE TABLE PGMR OF PGMR_TYPE UNDER EMP ;
![Page 21: Објектно-релационе базе података](https://reader035.vdocuments.site/reader035/viewer/2022062304/568146c2550346895db3f8b4/html5/thumbnails/21.jpg)
Објекти у SQL-у
• Манипулација подацима– SELECT на EMP се понаша нормално, а на PGMR се
понаша као да PGMR садржи све колоне које садржи и EMP
– INSERT се за EMP понаша нормално, а на PGMR убацује нове редове и на EMP и на PGMR
– DELETE се за EMP понаша нормално, а на PGMR брише редове из обе табеле
– UPDATE ако се допуњује LANG онда обавезно мора преко PGMR , а допуњавање осталих колона може преко обе табеле