Multimedia Databases Chapter 4.

Slides:



Advertisements
Similar presentations
1 DATA STRUCTURES USED IN SPATIAL DATA MINING. 2 What is Spatial data ? broadly be defined as data which covers multidimensional points, lines, rectangles,
Advertisements

Multidimensional Data Structures
Chapter 4: Trees Part II - AVL Tree
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 12: Indexing and.
Searching on Multi-Dimensional Data
Advanced Database Discussion B Trees. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory What if.
Multimedia Databases Chapter 4. Multidimensional Data Structures An important source of media data is geographic data. A geographic information system.
Spatial Access Methods
2-dimensional indexing structure
CSE332: Data Abstractions Lecture 9: B Trees Dan Grossman Spring 2010.
Spring 2008MMDB--MIRS1 Multimedia Information Retrieval Systems.
Tirgul 6 B-Trees – Another kind of balanced trees Some notes regarding Home Work.
Multiple-key indexes Index on one attribute provides pointer to an index on the other. If V is a value of the first attribute, then the index we reach.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
©Silberschatz, Korth and Sudarshan12.1Database System Concepts Chapter 12: Part B Part A:  Index Definition in SQL  Ordered Indices  Index Sequential.
Techniques and Data Structures for Efficient Multimedia Similarity Search.
B + -Trees (Part 1) Lecture 20 COMP171 Fall 2006.
1 B-Trees Disk Storage What is a multiway tree? What is a B-tree? Why B-trees? Comparing B-trees and AVL-trees Searching a B-tree Insertion in a B-tree.
1 Database indices Database Systems manage very large amounts of data. –Examples: student database for NWU Social Security database To facilitate queries,
B + -Trees (Part 1). Motivation AVL tree with N nodes is an excellent data structure for searching, indexing, etc. –The Big-Oh analysis shows most operations.
Tirgul 6 B-Trees – Another kind of balanced trees Problem set 1 - some solutions.
CSE 326: Data Structures B-Trees Ben Lerner Summer 2007.
R-Trees Used to store rectangular regions of an image or a map such as those shown below. R-trees are particularly useful in storing very large amounts.
R-Trees 2-dimensional indexing structure. R-trees 2-dimensional version of the B-tree: B-tree of maximum degree 8; degree between 3 and 8 Internal nodes.
B-Trees and B+-Trees Disk Storage What is a multiway tree?
Data Structures Using C++ 2E Chapter 11 Binary Trees and B-Trees.
Homework #3 Due Thursday, April 17 Problems: –Chapter 11: 11.6, –Chapter 12: 12.1, 12.2, 12.3, 12.4, 12.5, 12.7.
B + -Trees COMP171 Fall AVL Trees / Slide 2 Dictionary for Secondary storage * The AVL tree is an excellent dictionary structure when the entire.
Tirgul 6 B-Trees – Another kind of balanced trees.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 20: Binary Trees.
CS4432: Database Systems II
Data Structures Using C++1 Chapter 11 Binary Trees.
Indexing. Goals: Store large files Support multiple search keys Support efficient insert, delete, and range queries.
IntroductionIntroduction  Definition of B-trees  Properties  Specialization  Examples  2-3 trees  Insertion of B-tree  Remove items from B-tree.
B-Tree. B-Trees a specialized multi-way tree designed especially for use on disk In a B-tree each node may contain a large number of keys. The number.
©Silberschatz, Korth and Sudarshan12.1Database System Concepts B + -Tree Index Files Indexing mechanisms used to speed up access to desired data.  E.g.,
Spatial Data Management Chapter 28. Types of Spatial Data Point Data –Points in a multidimensional space E.g., Raster data such as satellite imagery,
1 B Trees - Motivation Recall our discussion on AVL-trees –The maximum height of an AVL-tree with n-nodes is log 2 (n) since the branching factor (degree,
Chapter 19: Binary Trees. Objectives In this chapter, you will: – Learn about binary trees – Explore various binary tree traversal algorithms – Organize.
UNC Chapel Hill M. C. Lin Orthogonal Range Searching Reading: Chapter 5 of the Textbook Driving Applications –Querying a Database Related Application –Crystal.
INTRODUCTION TO MULTIWAY TREES P INTRO - Binary Trees are useful for quick retrieval of items stored in the tree (using linked list) - often,
Multi-dimensional Search Trees
COSC 2007 Data Structures II Chapter 15 External Methods.
B + -Trees. Motivation An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations.
Starting at Binary Trees
1 Tree Indexing (1) Linear index is poor for insertion/deletion. Tree index can efficiently support all desired operations: –Insert/delete –Multiple search.
Lecture1 introductions and Tree Data Structures 11/12/20151.
Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Prof. Sumanta Guha Slide Sources: CLRS “Intro.
Spatial Indexing Techniques Introduction to Spatial Computing CSE 5ISC Some slides adapted from Spatial Databases: A Tour by Shashi Shekhar Prentice Hall.
The Present. Outline Index structures for in-memory Quad trees kd trees Index structures for databases kdB trees Grid files II. Index Structure.
Indexing Database Management Systems. Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files File Organization 2.
Data Structures Using C++ 2E Chapter 11 Binary Trees.
Multimedia Alicja Wieczorkowska Multimedia database systems and GIS.
Chapter 11 Indexing And Hashing (1) Yonsei University 1 st Semester, 2016 Sanghyun Park.
Tree Representation and Terminology Binary Trees Binary Search Trees Pointer-Based Representation of a Binary Tree Array-Based Representation of a Binary.
UNC Chapel Hill M. C. Lin Geometric Data Structures Reading: Chapter 10 of the Textbook Driving Applications –Windowing Queries Related Application –Query.
Lecture 22 Binary Search Trees Chapter 10 of textbook
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
KD Tree A binary search tree where every node is a
Data Structures Using C++ 2E
(edited by Nadia Al-Ghreimil)
B-Tree.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
(edited by Nadia Al-Ghreimil)
Multidimensional Search Structures
Data Structures Using C++ 2E
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

Multimedia Databases Chapter 4

Multidimensional Data Structures An important source of media data is geographic data. A geographic information system (GIS) stores information about some physical region of the world. A map is just viewed as a 2-dimensional image, and certain “points” on the map are considered to be of interest. These points are then stored in one of many specialized data structures. k-d Trees Point Quadtrees MX-Quadtrees

Multidimensional Data Structures Alternatively, we may wish to store certain rectangular regions of the map. We will study one data structure - the R-tree - that is used to store such rectangular data.

Example Maps

k -D Trees Used to store k dimensional point data. It is not used to store region data. A 2-d tree (i.e. for k = 2) stores 2-dimensional point data while a 3-d tree stores 3-dimensional point data, and so on.

Node Structure nodetype = record end INFO: infotype; XVAL: real; YVAL: real; LLINK:  nodetype RLINK:  nodetype end

Node Structure INFO field is any user-defined type whatsoever. XVAL and YVAL denote the coordinates of a point associated with the node. LLINK and RLINK fields point to two children.

2-d trees, formally Level of nodes is defined in the usual way (with root at level 0). Def: A 2-d tree is any binary tree satisfying the following condition: If N is a node in the tree such that level(N) is even, then every node M in the subtree rooted at N.LLINK has the property that M.XVAL < N.XVAL and every node P in the subtree rooted at N.RLINK has the property that P.XVAL >= N.XVAL.

2-d trees, formally 2. If N is a node in the tree such that level(N) is odd, then every node M in the subtree rooted at N.LLINK has the property that M.YVAL < N.YVAL and every node P in the subtree rooted at N.RLINK has the property that P.YVAL >= N.YVAL.

Example 2-d Trees

Example 2-d Trees

Insertion/Search in 2-d Trees To insert a node N into the tree pointed to by T, do as follows: Check to see if N and T agree on their XVAL and YVAL fields. If so, just overwrite node T and we are done. Else, branch left if N.XVAL < T.XVAL and branch right otherwise.

Insertion/Search in 2-d Trees Suppose P denotes the child we are examining. If N and P agree on their XVAL and YVAL fields. just overwrite node P and we are done, else branch left if N.YVAL<P.YVAL and branch right otherwise. Repeat this procedure, branching on XVAL's when we are at even levels in the tree, and on YVALs when we are at odd levels in the tree.

Example of Insertion

Example of Insertion Suppose we wish to insert the following points.

Example of Insertion

Example of Insertion

Deletion in 2-d Trees Suppose T is a 2-d tree, and (x, y) refers to a point that we wish to delete from the tree. Search for the node N in T that has N.XVAL = x and N.YVAL= y. If N is a leaf node, then set the appropriate field (LLINK or RLINK) of N's parent to NIL and return N to available storage.

Deletion in 2-d Trees Otherwise, either the subtree rooted at N.LLINK (which we will denote by Tl ) or the subtree rooted at N.RLINK (which we will denote by Tr ) is non-empty. (Step 1) Find a “candidate replacement” node R that occurs either in Ti for i  {l,r}. (Step 2) Replace all of N's non-link fields by those of R. (Step 3) Recursively delete R from Ti .

Deletion in 2-d Trees The above recursion is guaranteed to terminate as Ti for i  {l,r} has strictly smaller height than the original tree T.

Finding Candidate Replacement Nodes for Deletion The desired replacement node R must bear the same spatial relation to all nodes P in both Tl and Tr that N bore to P I.e. if P is to the southwest of N, then P must be to the southwest of R, if P is to the northwest of N, then P must be to the northwest of R, and so on.

Finding Candidate Replacement Nodes for Deletion This means that the desired replacement node R must satisfy the property that: Every node M in Tl is such that: M.XVAL < R.XV AL if level(N) is even and M.YVAL < R.YVAL if level(N) is odd. Every node M in Tr is such that: M.XVAL >= R.XVAL if level(N) is even and M.YVAL >= R.YV AL if level(N) is odd.

Finding Candidate Replacement Nodes for Deletion If Tr is not empty, and level(N) is even, then any node in Tr that has the smallest possible XVAL field in Tr is a candidate replacement node. But if Tr is empty, then we might not be able to find a candidate replacement node from Tl (why?).

Finding Candidate Replacement Nodes for Deletion In this case, find the node R’ in Tl with the smallest possible XVAL field. Replace N with this. Set N.RLINK = N.LLINK and set N.LLINK = NIL. Recursively delete R’.

Range Queries in 2-d Trees A range query with respect to a 2-d tree T is a query that species a point (xc , yc), and a distance r. The answer to such a query is the set of all points (x,y) in the tree T such that (x, y) lies within distance d of (xc , yc). I.e. A range query defines a circle of radius r centered at location (xc , yc), and expects to find all points in the 2-d tree that lie within the circle.

Range Queries in 2-d Trees Recall that each node N in a 2-d tree implicitly represents a region RN . If the circle specified in a query has no intersection with RN , then there is no point searching the subtree rooted at node N.

Example Range Query

Point Quadtrees Point quadtrees always split regions into four parts. In a 2-d tree, node N splits a region into two by drawing one line through the point (N.XV AL, N.YVAL). In a point quadtree, node N splits the region it represents by drawing both and horizontal and a vertical line through the point (N.XVAL, N.YVAL).

Point Quadtrees These four parts are called the NW (northwest), SW (southwest), NE (northeast) and SE (southest) quadrants determined by node N. Each of these quadrants corresponds to a child of node N. Thus, quadtree nodes may have up to 4 children each.

Point Quadtrees Node structure in a point quadtree: qtnodetype = record INFO: infotype; XVAL: real; YVAL: real; NW,SW,NE,SE: qtnodetype end

Nodes in Point Quadtrees Implicitly Represent Regions

Insertion into Point Quadtrees

Insertion into Point Quadtrees

Insertion into Point Quadtrees

Insertion into Point Quadtrees PS:original document looks corrupt…

Insertion into Point Quadtrees

Insertion into Point Quadtrees

R-Trees Used to store rectangular regions of an image or a map such as those shown below. R-trees are particularly useful in storing very large amounts of data on disk. They provide a convenient way of minimizing the number of disk accesses.

R-Trees Each R-tree has an associated order, which is an integer K. Each non-leaf R-tree node contains a set of at most K rectangles and at least [K/2] rectangles (with the possible exception of the root). Intuitively, this says that each non-leaf node in the R-tree, with the exception of the root, must be at least “half” full.

R-Trees This feature makes R-trees appropriate for disk based retrieval because each disk access brings back a page containing several (i.e. at least K/2 rectangles).

R-Trees R-trees manipulate two kinds of rectangles: “Real” rectangles (such as those shown in the map on the previous slide) or “Group” rectangles such as those shown below.

R-Trees

Example R-Tree This is an R-tree of order 4, associated with the rectangles shown earlier.

Example R-Tree R-tree nodes have the following structure: rtnodetype = record Rec1, … , RecK : rectangle; P1 , … , PK : rtnodetype end

Insertion into an R-Tree

Insertion into an R-Tree

Insertion into an R-Tree

An Incorrect Insertion into an R-Tree

Deletion in R-Trees Deletion of objects from R-trees may cause a node in the R-tree to “underflow” because an R-tree of order K must contain at least [K/2] rectangles (real or group) in it. When we delete a rectangle from an R-tree, we must ensure that that node is not “under-full”.

Deletion in R-Trees If we delete R9, then the node containing rectangle R9 would have only one node in it. In this case, we must create a new logical grouping. One possibility is to reallocate the groups as follows:

Deletion in R-Trees The new R-tree is: