Upload
tejano
View
43
Download
0
Embed Size (px)
DESCRIPTION
Објектно-релационе базе података. Немања Трбовић Радовић Петар Милош Војиновић. Објектно-релационе базе података. Пререлационе базе - прва генерација Релационе базе - друга генерација Објектно-релационе базе - ? Примери. Објектно-релационе базе података. - PowerPoint PPT Presentation
Citation preview
Објектно-релационе базе података
Немања Трбовић
Радовић Петар
Милош Војиновић
Објектно-релационе базе података
• Пререлационе базе - прва генерација
• Релационе базе - друга генерација
• Објектно-релационе базе - ?
• Примери
Објектно-релационе базе података
• 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)
The First Great Blunder
• Потребно је дати одговор на питање шта је у релационом свету оно што је класа у објектном.
• domain=object class
• relvar=object class
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 ) ;
• 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
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
The Second Great Blunder
• Логичка последица прве грешке• Ситуација после прве грешке
– н-торке и релације ( противимо се идеји да они морају да имају специфичне вредности које су садржане у другим(базним) рел.пром. и томе да они ,у ствари, садрже показиваче на н-торке или релације
– Додељивање метода рел. пром. ( противимо се томе сто се методе користе само у бези са рел.пром. , а не и са типовима или доменима)
– Подкласе и надкласе ( косе се са правилним типовима наслеђивања )
The Second Great Blunder
– Изрази везани за путање (нису довољно опширни да би изразили ланце показивача)
– Литерали за н-торке и релације (неопходни, али их је потребно проширити у селекторе)
– Оператори за поређење релација– Оператори за пролазак кроз класну хијерархију
(велика замерка: кршење релационог модела )– Додавање метода SELECT и WHERE – Приступ идивидуалним компонентама унутар
атрибута чије су вредности н-торке или релације
The Second Great Blunder
• Друга грешка је везана за кршење формализма и саме дефиниције показивача
• Показивачи и правилан модел наследђивања нису компатибилни
• Пример
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);
Проблеми имплементације
• Парсирање и провера типа података– Информације које се односе на операторе и типове
дефинисане од стране корисника се чувају у системском каталогу
– Компајлер мора да буде поново написан да би могао да добија информације о типовима и операторима из каталога
• Оптимизација – Трансформације израза
– Селекција
– Цена формула
Проблеми имплементације
• Структуре за складиштење података– Нове структуре за складиштење података– Индекси на подацима који су дефинисани од стране
корисника– Индекси на резултатима операција
Погодности правилног приступа
Query
No query
2
1
4
3
Simple data Complex data
Погодности правилног приступа
• Ad hoc упити• Методи који пореде класе• Динамички дефинисане класе• Двоструки приступ• Транзиције• Семантичка оптимизација• Релације степена већег од 2• Правила страних кључева• Могућност оптимизације• Итд.
Погодности правилног приступа
• Брига о показивачима није више у домену корисника
• Дилема у вези објеката је нестала• Добробити капсилирања и даље постоје, али
за скаларне вредности унутар релације, али не и за саме релације
• Рационални системи сада могу користе сложене апликације као што су CAD/CAM
Објекти у 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# ) ) … ;
Објекти у 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# ) ) ;
Објекти у 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’ ;
Објекти у 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 ;
Објекти у SQL-у
• Манипулација подацима– SELECT на EMP се понаша нормално, а на PGMR се
понаша као да PGMR садржи све колоне које садржи и EMP
– INSERT се за EMP понаша нормално, а на PGMR убацује нове редове и на EMP и на PGMR
– DELETE се за EMP понаша нормално, а на PGMR брише редове из обе табеле
– UPDATE ако се допуњује LANG онда обавезно мора преко PGMR , а допуњавање осталих колона може преко обе табеле