1 / 21

Објектно-релационе базе података

Објектно-релационе базе података. Немања Трбовић Радовић Петар Милош Војиновић. Објектно-релационе базе података. Пререлационе базе - прва генерација Релационе базе - друга генерација Објектно-релационе базе - ? Примери. Објектно-релационе базе података.

tejano
Download Presentation

Објектно-релационе базе података

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. Објектно-релационе базе података Немања Трбовић Радовић Петар Милош Војиновић

  2. Објектно-релационе базе података • Пререлационе базе - прва генерација • Релационе базе - друга генерација • Објектно-релационе базе - ? • Примери

  3. Објектно-релационе базе података • 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)

  4. The First Great Blunder • Потребно је дати одговор на питање шта је у релационом свету оно што је класа у објектном. • domain=object class • relvar=object class

  5. 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 ) ;

  6. 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

  7. Nije klasican ucaureni objekat • Tipovi podataka • Problem sa upoznavanjem korisnika sa pokazivacima • Projekcija bi trebalo da je klasa ali nije • Problem definicije domena

  8. The Second Great Blunder • Логичка последица прве грешке • Ситуација после прве грешке • н-торке и релације ( противимо се идеји да они морају да имају специфичне вредности које су садржане у другим(базним) рел.пром. и томе да они ,у ствари, садрже показиваче на н-торке или релације • Додељивање метода рел. пром. ( противимо се томе сто се методе користе само у бези са рел.пром. , а не и са типовима или доменима) • Подкласе и надкласе ( косе се са правилним типовима наслеђивања )

  9. The Second Great Blunder • Изрази везани за путање (нису довољно опширни да би изразили ланце показивача) • Литерали за н-торке и релације (неопходни, али их је потребно проширити у селекторе) • Оператори за поређење релација • Оператори за пролазак кроз класну хијерархију (велика замерка: кршење релационог модела ) • Додавање метода SELECT и WHERE • Приступ идивидуалним компонентама унутар атрибута чије су вредности н-торке или релације

  10. The Second Great Blunder • Друга грешка је везана за кршење формализма и саме дефиниције показивача • Показивачи и правилан модел наследђивања нису компатибилни • Пример

  11. 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);

  12. Проблеми имплементације • Парсирање и провера типа података • Информације које се односе на операторе и типове дефинисане од стране корисника се чувају у системском каталогу • Компајлер мора да буде поново написан да би могао да добија информације о типовима и операторима из каталога • Оптимизација • Трансформације израза • Селекција • Цена формула

  13. Проблеми имплементације • Структуре за складиштење података • Нове структуре за складиштење података • Индекси на подацима који су дефинисани од стране корисника • Индекси на резултатима операција

  14. Погодности правилног приступа Query 2 4 No query 1 3 Simple data Complex data

  15. Погодности правилног приступа • Ad hoc упити • Методи који пореде класе • Динамички дефинисане класе • Двоструки приступ • Транзиције • Семантичка оптимизација • Релације степена већег од 2 • Правила страних кључева • Могућност оптимизације • Итд.

  16. Погодности правилног приступа • Брига о показивачима није више у домену корисника • Дилема у вези објеката је нестала • Добробити капсилирања и даље постоје, али за скаларне вредности унутар релације, али не и за саме релације • Рационални системи сада могу користе сложене апликације као што су CAD/CAM

  17. Објекти у 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# ) ) … ;

  18. Објекти у 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 CASCADE NOT NULL, PRIMARY KEY ( EMP# ) ) ;

  19. Објекти у SQL-у • наћи број одељења у коме ради запослени Е1 SELECT DEPT_ID -> DEPT# AS DEPT# FORM EMP WHERE EMP# = ‘E1’ ; • наћи одељење у коме ради запослени Е1 SELECT DEREF ( DEPT_ID ) AS DEPT FROM EMP WHERE EMP# = ‘E1’ ; • наћи бројеве запослених у одељењу Д1 SELECT EMP# FROM EMP WHERE DEPT_ID -> DEPT# = ‘D1’ ;

  20. Објекти у SQL-у • Подтабеле и надтабеле • Табела Б може да буде подтабела табеле А ако и само ако су оне обе табеле неког типа и ако је тип табеле Б подтип типа над којим је дефинисана табела А CREATE TYPE EMP_TYPE AS (EMP# … , DEPT# … , ) … REF IS SYSTEM GENERATED ; CREATE TYPE PGMR_TYPE UNDER EMP_TYPE AS ( LANG … ) ; CREATE TABLE EMP OF EMP_TYPE (REF IS EMP_ID SYSTEM GENERATED, PRIMARY KEY (EMP#) ) … ; CREATE TABLE PGMR OF PGMR_TYPE UNDER EMP ;

  21. Објекти у SQL-у • Манипулација подацима • SELECT на EMP се понаша нормално, а на PGMR се понаша као да PGMR садржи све колоне које садржи и EMP • INSERT се за EMP понаша нормално, а на PGMR убацује нове редове и на EMP и на PGMR • DELETE се за EMP понаша нормално, а на PGMR брише редове из обе табеле • UPDATE ако се допуњује LANG онда обавезно мора преко PGMR , а допуњавање осталих колона може преко обе табеле

More Related