N M N 1 表 ATTENDEE AID NAME A1 Jill A2 Sanjay SESSION SID NAME ROOM SPID S1 JSON OSLO SP1 S2 SQL TOKYO SP2 SPEAKER SPID NAME PHONE SP1 Carla 650.. SP2 Pascal 408... ATT_SES_MAP AID SID A1 S1 A2 S2 PK PK PK FK FK FK
T E N D E E S P E A K E R S E S S I O N AT T _ S E S S _ M A P Jillのスケジュールを作成するには、開発者は4つの 各表に対してデータベース操作を実⾏する必要がある SQL SQL SQL SQL SESSION SCHEDULE FOR JILL ( AC M E I NC . ) Time 4 PM Room B405 Speaker Beda Time 2 PM Room A102 Speaker Adam SQL for Dummies JSON Intro
VIEW attendeeSchedule AS attendee { _id : aid name : name company : company schedule : att_sess_map [ { session { code : sid session : sname time : time room : room speaker { speaker : sname } } } ] }; S P E A KE R S E S S I O N AT T E ND E E AT T _ S E S S _ M A P
attendeeSchedule AS attendee { _id : aid name : name company : company schedule : att_sess_map [ { session { code : sid session : sname time : time room : room speaker { speaker : sname } } } ] }; ビューでは、JSONドキュメントに含めるデータを含む表を指定するだけ AT T E N D E E AID NAME COMPANY PHONE 3245 Jill ACME Inc 650 … … … … … … … … … … … …
• 変更が発⽣していた場合、書込み操作は ⾃動的に拒否され、エラーが返される • アプリケーションは再度読み取りを実⾏し、 変更されたデータに基づいて書込みを再実⾏可能 「楽観的同時実⾏性制御」と呼ばれる Database App GET Doc PUT Doc Change Doc Reject if Stored Data Changed
features Fast, refreshable JSON materialized views Oracle Database 23ai - the leading database for JSON JSON type domains Multivalue any-type index AI vector support in JSON type JSON in property graphs JSON / Relational Duality JSON data type PL/SQL record/collection JSON mappers JSON Schema validation and describe { } ✓ ✗ JSON collection tables JSON search index sync auto Support for MongoDB’s aggregation pipeline Augmentation for JSON Relational Duality $sql command Improved Exadata smart scans SQL Boolean to JSON mapping JSON external tables Indexes in MongoDB API: singleton index, array index, TTL index, search index $match $match $match