260 likes | 435 Views
BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO. SEMINAR. OBJECT-DATABASE SYSTEMS. Compare. Extend. New data. ODL, OQL. Object-Database. Challenge. Identity. Inheritance. Design. Loại cấu trúc và ADT. Probe. Loại cấu trúc và ADT. Camera type. Loại cấu trúc và ADT. Video stream.
E N D
BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO SEMINAR OBJECT-DATABASE SYSTEMS
Compare Extend New data ODL, OQL Object-Database Challenge Identity Inheritance Design
Loạicấutrúcvà ADT Probe
Loạicấutrúcvà ADT Camera type
Loạicấutrúcvà ADT Video stream
Loạicấutrúcvà ADT Location (latitude, longitude) Time
Loạicấutrúcvà ADT Location (latitude, longitude) Probe Time Video stream
Thiếtkế cơ sở dữ liệu RDBMS Phụthuộchàm • PTLN CV • P CV Probe (pid: integer, time: timestamp, latitude: real, longitude: real, camera: string, video: BLOB)
Thiếtkế cơ sở dữ liệu RDBMS Probes_Loc(pid: integer, time: timestamp, latitude: real, longitude: real) Probes_Video(pid: integer, camera: string:, video: BLOB) • “Với probe 10, hiểnthịđoạn video đượcthutừ 1:10pm đến 1:15pm vàongày 10, 1996” • Thông tin liêntiếpbịphântán qua cácbộ • Thông tin video và location bịphântáchra
Thiếtkế cơ sở dữ liệu ORDBMS SELECTdisplay (P.video, 1:10pm, May 10 1996, 1:15pm, May 10 1996) FROMProbes_Allinfo P WHERE P.id = 10 Probes_AllInfo(pid: integer, locseq: location_seq, camera: string, video: mpeg_stream)
Địnhdanh • đốitượng • (Oid) • Khóangoại • (Foreign key)
Sửdụngcáctậphợplồngnhau Probes1 (pid: integer, locseq: location_seq) • Tìmthờiđiểmsớmnhấtđượcghi ở latitude =5, và longitude =10 Probes2 (pid: integer, time:timestamp, latitude: real, longitude: real) Sựlựachọntrongthiếtkếlượcđồphảiphụthuộcvàolượng workload mongmuốn Tránhlạmdụngtậphợplồngnhau • Vớimỗi probe, hãyxuấtrathờigiansớmnhấtđượcghilạivàloại camera
Chỉmụctrênloạidữliệumới INDEX
Chỉmụctrênloạidữliệumới • Xâydựngmột interface phươngthứctruyvấn • Cho phépngườidùngcàiđặtcáccấutrúcchỉmụcbênngoài DBMS. • Trongđóchỉmụcvàdữliệucóthểđượclưutrong file system • DBMS chỉđưaracácyêucầulặpđilặplạilà open, next, close đếnđoạnmãchỉmụcbênngoàicủangườidùng. Tuynhiênphầndữliệu ở chỉmụcbênngoàikhôngđượcbảovệbởi DBMS chotínhđồngthờivàphụchồi.
Chỉmụctrênloạidữliệumới • Xâydựngmột template cấutrúcchỉmụcchung • Càiđặttrựctiếptrong DBMS • Khắcphụcđượcvấnđềđồngthờivàphụchồi. • Vídụ: GeneralisedSearch Tree (GiST) làmộtcấutrúcnhưvậy. Nólàmột template dựatrêncây B+, chophéphầuhếtcáccấutrúcchỉmụccóthểcàiđặtvớivàidòng ADT code do ngườidùngđịnhnghĩa
Độ tin cậycủaphươngthức • Cho phépngườidùngbiêndịchtrênmộtngônngữlậptrìnhnhư C++, nhưngthựcthicácphươngthứcđó ở khônggianđịachỉkhácvới DBMS. • DBMS sẽgửigiaotiếpliêntiếntrình (IPC) đếnphươngthứcngườidùng, vàphươngthứctrảvề IPC. • Khắcphụcvấnđềlàmhưhỏnghệthốngvàngănchặncácphươngthứcnguyhiểmđọcvàchỉnhsửacơsởdữliệu. • Chúý làngườidùngkhiviếtphươngthứckhôngcầnbiết DBMS đangthựcthiphươngthức ở mộttiếntrìnhkhác. Sửdụng interpret (thôngdịch) phươngthứccủangườisửdụnghơnlà compile. DBMS cóthểkiểmtraphươngthứccóthựchiệntốt hay khôngtrướckhithựcthinó. Ngônngữthôngdịchđiểnhìnhlà Java
Method Caching Pointer Swizzling Sắpxếpbảngtrêncộtđóhoặcsửdụnglượcđồdựatrên hash Duytrì cache củaphươngthức input vànhững output trùngkhớpnhưmộtbảngtrongcơsởdữliệu.
Đăngkýchỉmụcvớibộtinhchỉnh OPTIMIZER HOW MUCH WHAT • Chi phínạpmộtbộđốivớichỉmụclàbaonhiêu • Điềukiệnnàotrongmệnhđề WHERE trùngkhớpvớichỉmục
Hệsốgiảmvàchi phítínhtoánchophươngthức ADT Tinhchỉnhcácphépchọn chi phícao • Thứtựtốtnhấttrongphépchọnlàmộthàmcủa chi phívàhệsốgiảm, rank = (hệsốgiảm -1 )/cost • Rank lớnthìhoãnphépchọnlạisaukhiđãthựchiệnphépkết Ngườidùngtựtínhtoán Nếunhưhàmtínhtoánđókhôngđượcđăngkíthìbộtinhchỉnhsửdụngmộthệsốgiảmtùyý