Stored Relvars 18 th April 2013 (30 th March 2001) David Livingstone. Stored Relvars

Size: px
Start display at page:

Download "Stored Relvars 18 th April 2013 (30 th March 2001) David Livingstone. Stored Relvars"

Transcription

1 Stored Relvars Introduction The purpose of a Stored Relvar (= Stored Relational Variable) is to provide a mechanism by which the value of a real (or base) relvar may be partitioned into fragments and/or merged with the values of other real relvars, with the results being physically stored instead of the relational value (= relvalue) of the original real relvar. This document describes stored relvars and their usage within the formal data storage model of the RAQUEL Database Management System (= DBMS). The Purpose of Stored Relvars A real relvar is a relvar whose value is physically stored. The simplest way to store its value is to store it in its entirety as a single, coherent whole that encompasses all the data in the relvalue. Sometimes this is sufficient. However sometimes it is preferable if the relvar s value is re-organised and the consequent results physically stored instead. There are three logical possibilities for re-organising the relvalue :- 1. The real relvar s value is fragmented into several smaller relvalues, and it is these relvalue fragments that are physically stored. 2. The real relvar s value is merged with the relvalues of other real relvars into a single, larger relvalue, and it is this single large relvalue that is physically stored. 3. A combination of the above two re-organisations. The purpose of stored relvars is to make possible the storage of a real relvar s value via a configuration of fragments and/or mergers of the real relvar s value. A stored relvar is one whose value is directly physically stored as a single, coherent whole. (It does not prevent the nature of the physical storage used being varied to optimise physical performance). Conversely each stored relvalue is the value of a stored relvar. By contrast, although a real relvar is also one whose value is physically stored, the storage may be direct or indirect. Direct storage means that its value is stored as a single, complete entity - i.e. the real relvar is also a stored relvar. Indirect storage means that its value can be split up into fragments and the fragment values physically stored; or its value can be merged with the values of other real relvars and the whole merged value physically stored; or some combination of the two.- i.e. the value of a real relvar is mapped to those of separate stored relvar(s). In the fragmentation approach, a relvar s value is fragmented horizontally or vertically. Horizontal fragmentation uses restrictions and/or semi-joins to split the original relvalue into a set of two or more sub-relvalues, such that they can be Page 1 of 10

2 unioned together to re-create the original relvalue. Vertical fragmentation uses projection to split the original relvalue into a set of two or more sub-relvalues, such that they can be naturally joined together to re-create the original relvalue. A fragment can itself be fragmented, either horizontally or vertically, so that the fragmentation can be continued recursively till fragments suitable for storage are obtained. Stored relvalues are the fragments chosen to be physically stored. In the merge approach, a relvar s value is merged together horizontally or vertically with the values of one or more other relvars. A horizontal merger is derived by unioning together compatible relvalues, such that the original relvalues can be re-created via restrictions on the merged relvalue. A vertical merger is derived by a natural join of appropriate relvalues, such that the original relvalues can be re-created via projections of the merged relvalue. Merged relvalues can themselves be merged together, either horizontally or vertically, so that the merging can be continued recursively till a merged result suitable for storage is obtained. Stored relvalues are the merged results chosen to be physically stored. The Rationale for Fragmenting and Merging Relvalues The fragmentation approach has been well developed for the design of DBs distributed over a network of computers, but can also be used to distribute data over multiple storage devices attached to one computer. In both cases, the distribution of fragments of a real relvar s value over multiple locations is in order to improve performance, typically to speed up access to stored data, also for other benefits such as improved resilience. Because fragmentation is purely a physical data storage issue, some DBMSs do not use relational algebra or its SQL equivalent to define it, but use methods developed as part of the DBMS s data storage management facilities. Traditionally mergers are not considered so attractive a strategy as fragmentation because in general it takes longer to access a small volume of data from a larger set than it does from a smaller set. This is exacerbated when relvalue sizes increase faster than the ability of storage devices to hold relvalues, where ability typically refers to storage capacity and access speed. Nevertheless vertical mergers are potentially beneficial. If a query involves joining relvars, physically storing the relvalue of the vertical merger that is the result of that join would remove the need for the (potentially time-consuming) physical join operation. This is the origin of the interest in materialised views as a data storage technique, and what underpins the halfway house of physical data clustering whereby data records holding tuples that would be merged in a join of two relvars are held in the same physical block. It is also why some denormalisation of relational DB designs occurs. However de-normalisation can lead to confusion and maintenance problems in the long run because the design no longer reflects the inherent nature and structure of the data in the database, despite the fact that queries and performance must be based ultimately on the inherent nature and structure of the data. Page 2 of 10

3 The combination of merging and fragmentation appears to be little used, but may be of interest (say) for use in supporting fragments of joins. Stored Relvars and RAQUEL s Formal Data Storage Model RAQUEL s formal data storage model deals with 3 aspects of physically storing the values of real relvars : 1. The flexibility to permit the values of real relvars to be stored in a variety of configurations, namely the ability to use the fragmentation and merging of real relvar values to create a suitable configuration of actual physically stored relvalues. Every physically stored relvalue is that of a stored relvar. 2. The ability for the value of a stored relvar to be stored in multiple locations. 3. Multiple kinds of storage facilities to handle the actual storage of and access to values of stored relvars. These 3 aspects are reflected in the 3 layers of the physical data storage architecture :- Storage Schema Stack Schema Location Schema Physical Schema The Storage Schema comprises the set of all the stored relvars that exists in the DB, analogously to the Logical Schema (in the layer above the Storage Schema) comprising the set of all the real relvars that exists in the DB. Each stack schema represents a particular location at which data is physically stored. A Stack Schema s Location Schema comprises all the stored relvars whose values are stored at that location, and its Physical Schema specifies the physical storage facilities used to store the value of a stored relvar at that location. The same relational model applies to both stored and real relvars, but stored relvars are an integral part of the RAQUEL formal data storage model, whereas real relvars are part of the logical model presented to an application by the RAQUEL DBMS. The storage model and the application model are disjoint. Nevertheless the front-end of the storage model uses the same relational model as the application model. The purpose of stored relvars is to be the containers of collections of attribute values that are to be physically stored. In principle, any kind of container, say an array of attribute values, could be used as long as it was effective and efficient in dealing with the storage and access of the physically stored data that forms a Page 3 of 10

4 relvalue, but RAQUEL uses relvars as containers. It uses them for the following reasons : It simplifies the construction of the DBMS as a whole because the same relational model is used for both the storage model and the application model. It is simpler for a DB Administrator to manage the physical storage of data, because s/he does not have to learn a new logical model to manage the storage system, nor does s/he have to learn how to map relations in the application model to a different kind of container of attribute values in the storage model. It provides the potential for a logical relational optimiser to operate not just at the level of virtual and real relvars but down to the level of stored relvars, without any additional overhead to the optimiser. It also simplifies what the physical storage optimiser has to achieve. Stored Relvars as Opposed to Real Relvars If stored relvars are to be used as the means of storing the relvalues of real relvars, there needs to be a means of mapping an individual real relvar to the one or more stored relvars that hold the former s value. This is done by binding a Storage Expression to a real relvar. A storage expression is a relational algebra expression that contains at least one relvar, such that every relvar in the expression Is a stored relvar. The binding is expressed in RAQUEL as follows : R ==Equate StorageExpression where R is the name of a real relvar which has the storage expression bound to it. The storage expression is said to define a storage configuration for R. The == prefix indicates that the assignment is a binding assignment and so part of the RAQUEL storage model. In an ==Equate assignment the storage expression is bound to the real relvar the expression equates to its value. Hence : The value of R is obtained by evaluating its storage expression. The value of R is changed by changing the value(s) of the stored relvar(s) in its storage expression. Every real relvar must be bound to some storage configuration in order that the DBMS can physically store the value of the real relvar. When a real relvar is first created, the DBMS in effect, as a default, executes the assignment : R ==Equate R This means that relvar R appears in both the application model and the storage model. It can have the same name in both models because it is the same relvar in both models. When a storage expression is assigned to a real relvar, it replaces the existing storage expression. So the default storage configuration of a real relvar can be replaced by a better one by assigning new storage expression to it at a later Page 4 of 10

5 date. Clearly care has to be taken if a real relvar already has a non-empty value when a new storage expression is assigned to it. This raises the question as to whether a storage expression could be a literal relvalue (as long as it is of the right type) : R ==Equate some-literal-relvalue This would effectively define R to be a constant whose value was that of the literal relvalue assigned. In fact the specification of ==Equate requires that StorageExpression include at least one stored relvar. However that doesn t exclude the possibility of a literal relvalue being included in StorageExpression. In general stored relvars form a different set of relvars to real relvars. As such it is necessary to be able to assign a relvalue to a stored relvar. This can be done in RAQUEL as follows : S <--Store relational-algebra-expression The RHS expression is evaluated and assigned to S as its value, overwriting any previously assigned value. S must be a stored relvar, although this does not exclude it from being a stored relvar which is also a real relvar. S is created if it does not already exist. In passing, note that RAQUEL also includes the two comparable assignments R <--Real relational-algebra-expression V <--View relational-algebra-expression where R is a real relvar and V is a virtual relvar. The <--Real assignment operates identically to <--Store, except that the LHS variable must be a real relvar. <--View operates like <--Real and <--Store except that the RHS expression is not evaluated but is assigned as is to V as its definition. Examples of the Usage of Stored Relvars Example One : Horizontal Fragmentation Let there be a real relvar, RU, such that it would be much more efficient to store and process its value as two disjoint sets of tuples, i.e. two sub-relvars. To ensure that the two relvars - let them be called R1 and R2 - are disjoint, there must be a condition such that when it is used as a parameter in a Restrict operation applied to RU, the tuples of RU for which the condition is True form the value of R1, and the tuples of RU for which the condition is False form the value of R2. In other words, if Condition expresses the condition, then : R1 RU Restrict[ Condition ] R2 RU Restrict[ ~ Condition ] It is then the case that : RU R1 Union R2 Page 5 of 10

6 Therefore it would be possible to store the value of the real relvar RU in two horizontal fragments corresponding to R1 and R2. To achieve this in RAQUEL requires first creating two stored relvars, R1 and R2, containing the relevant values, and then binding RU so that it takes its value from the union of R1 and R2. This would be expressed in RAQUEL as : R1 <--Store RU Restrict[ Condition ] R2 <--Store RU Restrict[ ~ Condition ] RU ==Equate R1 Union R2 The <--Store assignments create R1 and R2 as stored relvars, with the correct values derived from RU. This will happen whether RU has no tuples (because, say, it has just been created) - so an empty relvalue is assigned to each of R1 and R2 or whether R has a non-empty value. R1 and R2 are created with the correct type, which is derived from the RHS expression of the <--Store assignments, and so is the same type as that of RU. The ==Equate assignment replaces the previous storage expression of RU and hence the previous relvalue of RU with the new storage expression, which in fact will evaluate to the same value of RU. Note that it would be illogical to execute the ==Equate assignment before the <--Store assignments. Example Two : Vertical Fragmentation Let there be a real relvar, RJ, such that it would be much more efficient to store and process its value as two disjoint sets of attributes, i.e. two sub-relvars with no attributes in common. Actually they cannot be completely disjoint, because there would then be no way of re-combining the two fragments to re-create the value of RJ The solution is to make the attribute sets of the two sub-relvars disjoint except for a Candidate Key which is common to both sub-relvars. Then if : R3 RJ Project[ K, A ] R4 RJ Project[ K, B ] where K is a set of attributes that form a common Candidate Key, and A and B are two disjoint sets of attributes, then : RJ R3 Join[ K ] R4 The following statements in RAQUEL create the corresponding fragments as stored relvars : R3 <--Store RJ Project[ K1, K2, A1, A2, A3 ] R4 <--Store RJ Project[ K1, K2, B1, B2, B3, B4 ] RJ ==Equate R3 Join[ K1, K2 ] R4 This assumes that attributes K1 and K2 constitute the Candidate Key, attributes A1, A2, and A3 are those unique to R3, and attributes B1, B2, B3, and B4 are those unique to R4. Page 6 of 10

7 Example Three : A Merge of Horizontal Fragments Let there be two real relvars, RL and RR, such that it would be much more efficient to store and process their values as two merged relvars, each formed from two horizontal fragments of RL and RR. Initially let there be four fragments, RL1, RL2, RR1 and RR2, defined as follows : RL1 RL Restrict[ ConditionL ] RL2 RL Restrict[ ~ ConditionL ] RR1 RR Restrict[ ConditionR ] RR2 RR Restrict[ ~ ConditionR ] such that it is then the case that : RL RL1 Union RL2 RR RR1 Union RR2 Let relvar RL have attributes K1, K2, A1, A2 and A3. Let relvar RR have attributes K1, K2, B1, B2, B3 and B4. Let attributes K1 and K2 form a Candidate Key in both RL and RR. Let ConditionL and ConditionR be such that the use of ConditionL to split RL into fragments RL1 and RL2, and the use of ConditionR to split RR into fragments RR1 and RR2, has the following result. For each tuple in RL1 there is only one tuple in RR1 which matches it when RL1 is joined to RR1 on the common attributes K1 and K2; and vice versa. Likewise for each tuple in RL2 there is only one tuple in RR2 which matches it when RL2 is joined to RR2 on the common attributes K1 and K2; and vice versa. It is then the case that : RJ1 RL1 Join[ K1, K2 ] RR1 RJ2 RL2 Join[ K1, K2 ] RR2 such that : RJ1 Union RJ2 RL Join[ K1, K2 ] RR It would then be possible to create two stored relvars, RJ1 and RJ2 using the following RAQUEL statements : RJ1 <--Store ( RL Restrict[ ConditionL ] ) Join[ K1, K2 ] ( RR Restrict[ ConditionR ] ) RJ2 <--Store ( RL Restrict[ ~ ConditionL ] ) Join[ K1, K2 ] ( RR Restrict[ ~ ConditionR ] ) The values of the two original real relvars RL and RR could then be derived from the values of the two stored relvars RJ1 and RJ2 using the following RAQUEL statements : Page 7 of 10

8 RL ==Equate ( RJ1 Project[ K1, K2, A1, A2, A3 ] ) Union ( RJ2 Project[ K1, K2, A1, A2, A3 ] ) RR ==Equate ( RJ1 Project[ K1, K2, B1, B2, B3, B4 ] ) Union ( RJ2 Project[ K1, K2, B1, B2, B3, B4 ] ) Storing the relvalues of RL and RR via the stored relvars RJ1 and RJ2 could be more efficient if RL and RR were frequently used in queries which involved joins of the fragments RL1 and RR1 and/or joins of the fragments RL2 and RR2. In those queries the relational algebra expression of the query would include the sub- expression(s) whose value(s) has/have already been evaluated and stored under the designation RJ1 and/or RJ2, thereby reducing the data storage processing needed to accomplish the query. The Design of Storage Configurations The examples used sound design to ensure that the stored relvars represented a good physical storage configuration that mapped well to the real relvars. So what would happen if the design were poor? The answer is that the RAQUEL DBMS would still execute that design, because its data storage system is a formal model and the DBMS would simply execute the formalism. A poorly designed storage configuration may well execute slowly, or have undesirable consequences such as poor resilience. If the storage configuration is illogical, then executing the data storage formalism could result in the DBMS halting with an error or even returning a false result. In this respect, abusing the data storage formalism is no different to abusing any other mathematical formalism, such as integral calculus or differential calculus. The fact that the data storage system is a formal model does not make the use of it immune to poor design. There are design rules governing how fragmentation should be specified. For example, to get the most efficient and effective stored relvalues, horizontally created sub-relvalues should be disjoint (i.e. have no tuples in common); vertically created sub-relvalues should be disjoint (i.e. have no attributes in common) except for one common Candidate Key which is needed to join the sub-relvalues together so as to re-create the original relvalue. Design rules corresponding to those for fragmentation apply to the merging of relvalues. For example, when vertically merging two real relvars values with a join, it is important to do so in such a way that their values can be reliably and accurately re-created from the single merged relvalue. It is important to distinguish between the design of real relvars and the design of stored relvars : The design of real relvars concerns the succinct representation of the inherent nature and structure of all the data stored in the DB. Page 8 of 10

9 The design of stored relvars is dependent on the real relvars that they support, but is driven by data usage and the data storage units available. Data usage includes the frequency and relative importance of different DB transactions. In addition to optimising physical performance, recovery and security considerations need to be taken into account. The use of multiple networked computers and/or multiple storage units attached to one computer also affects the design. Hence the separate existence of the Logical Schema (for real relvars) and the Storage Schema (for stored relvars) is useful. For example, a fully normalised design may be applied to Logical Schema relvars with an un-normalised design in the Storage Schema in order to improve performance. Virtual, Real, and Stored Relvars The relationship of a virtual relvar to the real relvar(s) it is defined on is identical to the relationship of a real relvar to the stored relvar(s) that hold its relvalue. For instance, consider the earlier example where RJ was a real relvar such that : R3 RJ Project[ K, A ] R4 RJ Project[ K, B ] RJ R3 Join[ K ] R4 Two stored relvars R3 and R4 were created to hold the value of RJ : R3 <--Store RJ Project[ K1, K2, A1, A2, A3 ] R4 <--Store RJ Project[ K1, K2, B1, B2, B3, B4 ] RJ ==Equate R3 Join[ K1, K2 ] R4 Now suppose instead that it was decided to replace the real relvar RJ with a virtual relvar RJ that was defined on two real relvars R3 and R4 such that the same equivalences as before applied : R3 RJ Project[ K, A ] R4 RJ Project[ K, B ] RJ R3 Join[ K ] R4 This could be carried out with the following statements : R3 <--Real RJ Project[ K1, K2, A1, A2, A3 ] R4 <--Real RJ Project[ K1, K2, B1, B2, B3, B4 ] RJ <--View R3 Join[ K1, K2 ] R4 The two cases are logically equivalent. The only apparent difference is the use of a binding assignment ( ==Equate ) as opposed to a value assignment ( <--View ). However this difference is superficial. The binding assignment is needed because the expression assigned represents data storage; the value assignment is needed because the expression assigned represents a relational algebra definition within the relational model. Page 9 of 10

10 Both ==Equate and <--View assign the un-evaluated expression R3 Join[ K1, K2 ] R4 to the relvar named on their LHS. In both cases this expression must be evaluated to derive the value of RJ. In both cases when the value of RJ is changed, that change must cause corresponding changes in R3 and R4; the mechanism to do that in both cases is the view updating mechanism. In principle updating an underlying stored relvar(s) in order to update a real relvar is no different to updating an underlying real relvar(s) in order to update a virtual relvar. The correspondence applies generally. Date and McGoveran have proposed a generalised method of view updating for all logically-updateable virtual relvars. A comprehensive description was published in C. J. Date s 6 th edition of An Introduction to Database Systems (Addison Wesley, 1995) textbook. The method has been further developed and is the subject of C. J. Date s book View Updating and Relational Theory : Solving the View Update Problem (O Reilly,2013). Using this same method for the relvars underpinning both virtual and real relvars simplifies the construction of the DBMS and makes it easier for a DB Administrator who has to design all aspects of a DB 1. The execution of the view updating method takes account of the design of relvars, including their integrity constraints. With respect to design : Real relvars should canonically represent the inherent nature and structure of data in the DB. Stored relvars should reflect storage requirements. They are never seen by DB applications. Virtual relvars should meet user needs. They may be seen in conjunction with real relvars. Thus virtual relvars might be ad hoc in design, or they might be designed to canonically represent the inherent nature and structure of a sub-set of the DB s data that appears in a subschema. Given these different design approaches, the application of the view updating method in the two cases may tend to have different outcomes. 1 It also makes possible the use of unnamed views ( pseudovariables in the terminology of The Third Manifesto) in assignments such as ( RX Join[ K ] RY ) <--Insert LiteralRelvalue where K is a suitable Candidate Key common to both relvars RX and RY, and LiteralRelvalue has the same type as the LHS unnamed view. Consistent insertions to RX and RY are carried out by executing one statement, via the view update mechanism. Page 10 of 10

Illustrative Example of Logical Database Creation

Illustrative Example of Logical Database Creation Illustrative Example of Logical Database Creation A small RAQUEL DB is created to illustrate what is involved as regards the logical schemas of a RAQUEL DB. Create a Database or ExampleDB

More information

Illustrative Example of Physical Schema Usage

Illustrative Example of Physical Schema Usage Example of Physical Usage 14 th February 2014 (30 th March 2001) Illustrative Example of Physical Usage The example assumes that a small RAQUEL DB and its relational model schemas have already been created.

More information

Illustrative Example of Logical Database Creation

Illustrative Example of Logical Database Creation Illustrative Example of Logical Database Creation A small RAQUEL DB is created to illustrate what is involved as regards the logical schemas of a RAQUEL DB. Create a Database or ExampleDB

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

Generalising Relational Algebra Set Operators

Generalising Relational Algebra Set Operators Generalising Relational lgebra Set Operators Introduction The relational algebra join operators, Natural Join and Generalised (or Theta) Join, can both be generalised to so that they incorporate semi joins

More information

Examples of Relational Value Assignments

Examples of Relational Value Assignments Examples of Relational Value Assignments Example Relvars - First Set Let relvar EMP contain sample data of the ID number and name of employees, displayed in tabular format as :- No Name 1 Jack 2 Jill Example

More information

The Logical Design of the Tokeniser

The Logical Design of the Tokeniser Page 1 of 21 The Logical Design of the Tokeniser Purpose 1. To split up a character string holding a RAQUEL statement expressed in linear text, into a sequence of character strings (called word tokens),

More information

Distributed DBMS. Concepts. Concepts. Distributed DBMS. Concepts. Concepts 9/8/2014

Distributed DBMS. Concepts. Concepts. Distributed DBMS. Concepts. Concepts 9/8/2014 Distributed DBMS Advantages and disadvantages of distributed databases. Functions of DDBMS. Distributed database design. Distributed Database A logically interrelated collection of shared data (and a description

More information

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact:

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact: Query Evaluation Techniques for large DB Part 1 Fact: While data base management systems are standard tools in business data processing they are slowly being introduced to all the other emerging data base

More information

Chapter 4 RM PRESCRIPTIONS

Chapter 4 RM PRESCRIPTIONS RM PRESCRIPTIONS Chapter 4 T h e T h i r d M a n i f e s t o RM Prescriptions RM Proscriptions OO Prescriptions OO Proscriptions RM Very Strong Suggestions OO Very Strong Suggestions Recent Manifesto changes

More information

Managing the Database

Managing the Database Slide 1 Managing the Database Objectives of the Lecture : To consider the roles of the Database Administrator. To consider the involvmentof the DBMS in the storage and handling of physical data. To appreciate

More information

Lecture 1: Conjunctive Queries

Lecture 1: Conjunctive Queries CS 784: Foundations of Data Management Spring 2017 Instructor: Paris Koutris Lecture 1: Conjunctive Queries A database schema R is a set of relations: we will typically use the symbols R, S, T,... to denote

More information

RAQUEL Parser Code Design

RAQUEL Parser Code Design Parser Input A sequence of pointers-to-tokens. RAQUEL Parser Code Design Parser Output A tree of tokens linked together by pointers AND a sequence of error codes. Pre Conditions None. Post Conditions Length(

More information

Lecture2: Database Environment

Lecture2: Database Environment College of Computer and Information Sciences - Information Systems Dept. Lecture2: Database Environment 1 IS220 : D a t a b a s e F u n d a m e n t a l s Topics Covered Data abstraction Schemas and Instances

More information

DOWNLOAD PDF INSIDE RELATIONAL DATABASES

DOWNLOAD PDF INSIDE RELATIONAL DATABASES Chapter 1 : Inside Microsoft's Cosmos DB ZDNet Inside Relational Databases is an excellent introduction to the topic and a very good resource. I read the book cover to cover and found the authors' insights

More information

NULLs & Outer Joins. Objectives of the Lecture :

NULLs & Outer Joins. Objectives of the Lecture : Slide 1 NULLs & Outer Joins Objectives of the Lecture : To consider the use of NULLs in SQL. To consider Outer Join Operations, and their implementation in SQL. Slide 2 Missing Values : Possible Strategies

More information

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper.

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. Algebra of Sets Aditya Ghosh April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. 1 The Basics This article is only about the algebra of sets, and does not deal with the foundations

More information

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 16-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 16-1 Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 16-1 Chapter 16 Practical Database Design and Tuning Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Chapter Outline 1. Physical Database

More information

THE RELATIONAL DATABASE MODEL

THE RELATIONAL DATABASE MODEL THE RELATIONAL DATABASE MODEL Introduction to relational DB Basic Objects of relational model Properties of relation Representation of ER model to relation Keys Relational Integrity Rules Functional Dependencies

More information

7. Relational Calculus (Part I) 7.1 Introduction

7. Relational Calculus (Part I) 7.1 Introduction 7. Relational Calculus (Part I) 7.1 Introduction We established earlier the fundamental role of relational algebra and calculus in relational databases (see 5.1). More specifically, relational calculus

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VI Lecture 14, March 12, 2014 Mohammad Hammoud Today Last Session: DBMS Internals- Part V Hash-based indexes (Cont d) and External Sorting Today s Session:

More information

Advances in Data Management Distributed and Heterogeneous Databases - 2

Advances in Data Management Distributed and Heterogeneous Databases - 2 Advances in Data Management Distributed and Heterogeneous Databases - 2 1 Homogeneous DDB Systems The key advances in homogeneous DDB systems have been in relational distributed database systems. Challenges

More information

Relational Theory and Data Independence: Unfinished Business. Logical Data Independence and the CREATE VIEW Statement.

Relational Theory and Data Independence: Unfinished Business. Logical Data Independence and the CREATE VIEW Statement. Relational Theory and Data Independence: Unfinished Business. Dr. Tom Johnston Much has been made of the data independence that relational technology is said to provide. And indeed, much has been accomplished

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VI Lecture 17, March 24, 2015 Mohammad Hammoud Today Last Two Sessions: DBMS Internals- Part V External Sorting How to Start a Company in Five (maybe

More information

Databases-1 Lecture-01. Introduction, Relational Algebra

Databases-1 Lecture-01. Introduction, Relational Algebra Databases-1 Lecture-01 Introduction, Relational Algebra Information, 2018 Spring About me: Hajas Csilla, Mathematician, PhD, Senior lecturer, Dept. of Information Systems, Eötvös Loránd University of Budapest

More information

Database Management Systems MIT Introduction By S. Sabraz Nawaz

Database Management Systems MIT Introduction By S. Sabraz Nawaz Database Management Systems MIT 22033 Introduction By S. Sabraz Nawaz Recommended Reading Database Management Systems 3 rd Edition, Ramakrishnan, Gehrke Murach s SQL Server 2008 for Developers Any book

More information

Implementation Techniques

Implementation Techniques V Implementation Techniques 34 Efficient Evaluation of the Valid-Time Natural Join 35 Efficient Differential Timeslice Computation 36 R-Tree Based Indexing of Now-Relative Bitemporal Data 37 Light-Weight

More information

Chapter 3. Set Theory. 3.1 What is a Set?

Chapter 3. Set Theory. 3.1 What is a Set? Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM).

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). Question 1 Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). By specifying participation conditions By specifying the degree of relationship

More information

Let s briefly review important EER inheritance concepts

Let s briefly review important EER inheritance concepts Let s briefly review important EER inheritance concepts 1 is-a relationship Copyright (c) 2011 Pearson Education 2 Basic Constraints Partial / Disjoint: Single line / d in circle Each entity can be an

More information

DATABASE MANAGEMENT SYSTEM SHORT QUESTIONS. QUESTION 1: What is database?

DATABASE MANAGEMENT SYSTEM SHORT QUESTIONS. QUESTION 1: What is database? DATABASE MANAGEMENT SYSTEM SHORT QUESTIONS Complete book short Answer Question.. QUESTION 1: What is database? A database is a logically coherent collection of data with some inherent meaning, representing

More information

Chapter 3B Objectives. Relational Set Operators. Relational Set Operators. Relational Algebra Operations

Chapter 3B Objectives. Relational Set Operators. Relational Set Operators. Relational Algebra Operations Chapter 3B Objectives Relational Set Operators Learn About relational database operators SELECT & DIFFERENCE PROJECT & JOIN UNION PRODUCT INTERSECT DIVIDE The Database Meta Objects the data dictionary

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

CS233:HACD Introduction to Relational Databases Notes for Section 4: Relational Algebra, Principles and Part I 1. Cover slide

CS233:HACD Introduction to Relational Databases Notes for Section 4: Relational Algebra, Principles and Part I 1. Cover slide File: CS233-HACD-Notes4.doc Printed at: 16:15 on Friday, 28 October, 2005 CS233:HACD Introduction to Relational Databases Notes for Section 4: Relational Algebra, Principles and Part I 1. Cover slide In

More information

Chapter 12: Query Processing

Chapter 12: Query Processing Chapter 12: Query Processing Overview Catalog Information for Cost Estimation $ Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Transformation

More information

Ensuring Data Integrity Without Deferred Constraint Checking Efficient Multiple Simultaneous Assignment of Relvars

Ensuring Data Integrity Without Deferred Constraint Checking Efficient Multiple Simultaneous Assignment of Relvars Ensuring Data Integrity Without Deferred Constraint Checking Efficient Multiple Simultaneous Assignment of Relvars By Adrian Hudnott, Hugh Darwen & Jane Sinclair Multiple Simultaneous Assignment Why? 1.

More information

11. Architecture of Database Systems

11. Architecture of Database Systems 11. Architecture of Database Systems 11.1 Introduction Software systems generally have an architecture, ie. possessing of a structure (form) and organisation (function). The former describes identifiable

More information

Amendments & Transactions

Amendments & Transactions Slide 1 Amendments & Transactions Objectives of the Lecture : To consider amendments to a relation; To consider transactions in SQL. Slide 2 Relational Amendment Strictly speaking, relational amendment

More information

CS211 Lecture: Database Querying and Updating

CS211 Lecture: Database Querying and Updating CS211 Lecture: Database Querying and Updating last revised 9/30/2004 Objectives: 1. To introduce the relational algebra. 2. To introduce the SQL select statement 3. To introduce the SQL insert, update,

More information

CPS221 Lecture: Relational Database Querying and Updating

CPS221 Lecture: Relational Database Querying and Updating CPS221 Lecture: Relational Database Querying and Updating last revised 8/5/10 Objectives: 1. To introduce the SQL select statement 2. To introduce the SQL insert, update, and delete statements Materials:

More information

Advanced Database Systems

Advanced Database Systems Lecture IV Query Processing Kyumars Sheykh Esmaili Basic Steps in Query Processing 2 Query Optimization Many equivalent execution plans Choosing the best one Based on Heuristics, Cost Will be discussed

More information

Advanced Databases: Parallel Databases A.Poulovassilis

Advanced Databases: Parallel Databases A.Poulovassilis 1 Advanced Databases: Parallel Databases A.Poulovassilis 1 Parallel Database Architectures Parallel database systems use parallel processing techniques to achieve faster DBMS performance and handle larger

More information

Relational Data Model

Relational Data Model Relational Data Model 1. Relational data model Information models try to put the real-world information complexity in a framework that can be easily understood. Data models must capture data structure

More information

DATABASE THEORY. Lecture 12: Evaluation of Datalog (2) TU Dresden, 30 June Markus Krötzsch

DATABASE THEORY. Lecture 12: Evaluation of Datalog (2) TU Dresden, 30 June Markus Krötzsch DATABASE THEORY Lecture 12: Evaluation of Datalog (2) Markus Krötzsch TU Dresden, 30 June 2016 Overview 1. Introduction Relational data model 2. First-order queries 3. Complexity of query answering 4.

More information

CPS221 Lecture: Relational Database Querying and Updating

CPS221 Lecture: Relational Database Querying and Updating CPS221 Lecture: Relational Database Querying and Updating Objectives: last revised 10/29/14 1. To introduce the SQL select statement 2. To introduce the SQL insert, update, and delete statements Materials:

More information

OBJECTIVES. How to derive a set of relations from a conceptual data model. How to validate these relations using the technique of normalization.

OBJECTIVES. How to derive a set of relations from a conceptual data model. How to validate these relations using the technique of normalization. 7.5 逻辑数据库设计 OBJECTIVES How to derive a set of relations from a conceptual data model. How to validate these relations using the technique of normalization. 2 OBJECTIVES How to validate a logical data model

More information

Introduction to Databases

Introduction to Databases Introduction to Databases 1 Objectives Most common types of digital information processing enter file-based systems Why database systems came around DBMS environment: components / roles Is it all worth

More information

DSE 203 DAY 1: REVIEW OF DBMS CONCEPTS

DSE 203 DAY 1: REVIEW OF DBMS CONCEPTS DSE 203 DAY 1: REVIEW OF DBMS CONCEPTS Data Models A specification that precisely defines The structure of the data The fundamental operations on the data The logical language to specify queries on the

More information

Propositional Logic. Part I

Propositional Logic. Part I Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.

More information

M359: Relational Databases: theory and practice Notes to accompany slides on Relational Algebra

M359: Relational Databases: theory and practice Notes to accompany slides on Relational Algebra File: M359-Notes-on-RA.doc Printed at: 17:43 on Monday, 11 April, 2011 1. Cover slide M359: Relational Databases: theory and practice Notes to accompany slides on Relational Algebra Hugh Darwen An algebra

More information

A Summary of Out of the Tar Pit

A Summary of Out of the Tar Pit A Summary of Out of the Tar Pit Introduction This document summarises some points from the paper Out of the Tar Pit (written by Ben Moseley and Peter Marks, dated 6 th February 2006) which are relevant

More information

Data about data is database Select correct option: True False Partially True None of the Above

Data about data is database Select correct option: True False Partially True None of the Above Within a table, each primary key value. is a minimal super key is always the first field in each table must be numeric must be unique Foreign Key is A field in a table that matches a key field in another

More information

Unit 2. Unit 3. Unit 4

Unit 2. Unit 3. Unit 4 Course Objectives At the end of the course the student will be able to: 1. Differentiate database systems from traditional file systems by enumerating the features provided by database systems.. 2. Design

More information

T h i r d M a n i f e s t o (version dated February 7th, 2013, superseding all previous versions)

T h i r d M a n i f e s t o (version dated February 7th, 2013, superseding all previous versions) T h e T h i r d M a n i f e s t o (version dated February 7th, 2013, superseding all previous versions)... the powerful plain third manifesto with apologies to Stephen Spender These principles are eternal,

More information

DATABASE THEORY. Lecture 18: Dependencies. TU Dresden, 3rd July Markus Krötzsch Knowledge-Based Systems

DATABASE THEORY. Lecture 18: Dependencies. TU Dresden, 3rd July Markus Krötzsch Knowledge-Based Systems DATABASE THEORY Lecture 18: Dependencies Markus Krötzsch Knowledge-Based Systems TU Dresden, 3rd July 2018 Review: Databases and their schemas Lines: Line Type 85 bus 3 tram F1 ferry...... Stops: SID Stop

More information

Chapter 2: Intro to Relational Model

Chapter 2: Intro to Relational Model Chapter 2: Intro to Relational Model Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Example of a Relation attributes (or columns) tuples (or rows) 2.2 Attribute Types The

More information

LECTURE 8: SETS. Software Engineering Mike Wooldridge

LECTURE 8: SETS. Software Engineering Mike Wooldridge LECTURE 8: SETS Mike Wooldridge 1 What is a Set? The concept of a set is used throughout mathematics; its formal definition matches closely our intuitive understanding of the word. Definition: A set is

More information

Chapter 6 5/2/2008. Chapter Outline. Database State for COMPANY. The Relational Algebra and Calculus

Chapter 6 5/2/2008. Chapter Outline. Database State for COMPANY. The Relational Algebra and Calculus Chapter 6 The Relational Algebra and Calculus Chapter Outline Example Database Application (COMPANY) Relational Algebra Unary Relational Operations Relational Algebra Operations From Set Theory Binary

More information

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics 400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {

More information

Foundations of Databases

Foundations of Databases Foundations of Databases Free University of Bozen Bolzano, 2004 2005 Thomas Eiter Institut für Informationssysteme Arbeitsbereich Wissensbasierte Systeme (184/3) Technische Universität Wien http://www.kr.tuwien.ac.at/staff/eiter

More information

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions...

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions... Contents Contents...283 Introduction...283 Basic Steps in Query Processing...284 Introduction...285 Transformation of Relational Expressions...287 Equivalence Rules...289 Transformation Example: Pushing

More information

Chapter 18: Parallel Databases

Chapter 18: Parallel Databases Chapter 18: Parallel Databases Introduction Parallel machines are becoming quite common and affordable Prices of microprocessors, memory and disks have dropped sharply Recent desktop computers feature

More information

Creating SQL Tables and using Data Types

Creating SQL Tables and using Data Types Creating SQL Tables and using Data Types Aims: To learn how to create tables in Oracle SQL, and how to use Oracle SQL data types in the creation of these tables. Outline of Session: Given a simple database

More information

Boolean Component. Chapter 1. Boolean Operations

Boolean Component. Chapter 1. Boolean Operations Chapter 1. Boolean Component Component: The Boolean Component (BOOL), in the bool directory, performs Boolean operations on the model topology of bodies, first finding the intersections between bodies,

More information

Announcements. Relational Model & Algebra. Example. Relational data model. Example. Schema versus instance. Lecture notes

Announcements. Relational Model & Algebra. Example. Relational data model. Example. Schema versus instance. Lecture notes Announcements Relational Model & Algebra CPS 216 Advanced Database Systems Lecture notes Notes version (incomplete) available in the morning on the day of lecture Slides version (complete) available after

More information

Teiid Designer User Guide 7.7.0

Teiid Designer User Guide 7.7.0 Teiid Designer User Guide 1 7.7.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Chapter 2 Introduction to Relational Models

Chapter 2 Introduction to Relational Models CMSC 461, Database Management Systems Spring 2018 Chapter 2 Introduction to Relational Models These slides are based on Database System Concepts book and slides, 6th edition, and the 2009 CMSC 461 slides

More information

Uncertain Data Models

Uncertain Data Models Uncertain Data Models Christoph Koch EPFL Dan Olteanu University of Oxford SYNOMYMS data models for incomplete information, probabilistic data models, representation systems DEFINITION An uncertain data

More information

Database Systems: Learning Outcomes. Examples of Database Application. Introduction

Database Systems: Learning Outcomes. Examples of Database Application. Introduction Chapter 1 Part One: Introduction to 1 Systems: Thomas Connolly, Carolyn Begg, System, A Practical Approach to Design Implementation and Management, 4 th Edition, Addison Wesley Introduction Traditional

More information

Teaching Scheme BIT/MMC/BCS Database Systems 1

Teaching Scheme BIT/MMC/BCS Database Systems 1 Teaching Scheme BIT/MMC/BCS Database Systems 1 Level : 1 Year : 2000 2001 Konstantina Lepinioti (tlepinio@bournemouth.ac.uk) Melanie Coles (mcoles@bournemouth.ac.uk) Autumn Term Week Lecture Seminar/Lab

More information

Normalization in DBMS

Normalization in DBMS Unit 4: Normalization 4.1. Need of Normalization (Consequences of Bad Design-Insert, Update & Delete Anomalies) 4.2. Normalization 4.2.1. First Normal Form 4.2.2. Second Normal Form 4.2.3. Third Normal

More information

DDS Dynamic Search Trees

DDS Dynamic Search Trees DDS Dynamic Search Trees 1 Data structures l A data structure models some abstract object. It implements a number of operations on this object, which usually can be classified into l creation and deletion

More information

CT13 DATABASE MANAGEMENT SYSTEMS DEC 2015

CT13 DATABASE MANAGEMENT SYSTEMS DEC 2015 Q.1 a. Explain the role of concurrency control software in DBMS with an example. Answer: Concurrency control software in DBMS ensures that several users trying to update the same data do so in a controlled

More information

Data Base Concepts. Course Guide 2

Data Base Concepts. Course Guide 2 MS Access Chapter 1 Data Base Concepts Course Guide 2 Data Base Concepts Data The term data is often used to distinguish binary machine-readable information from textual human-readable information. For

More information

Chapter 3: The Relational Database Model

Chapter 3: The Relational Database Model Chapter 3: The Relational Database Model Student: 1. The practical significance of taking the logical view of a database is that it serves as a reminder of the simple file concept of data storage. 2. You

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Topic Maps Reference Model, version 6.0

Topic Maps Reference Model, version 6.0 Topic Maps Reference Model, 13250-5 version 6.0 Patrick Durusau Steven R. Newcomb July 13, 2005 This is a working draft of the Topic Maps Reference Model. It focuses on the integration of Robert Barta

More information

DATABASE MANAGEMENT SYSTEMS

DATABASE MANAGEMENT SYSTEMS www..com Code No: N0321/R07 Set No. 1 1. a) What is a Superkey? With an example, describe the difference between a candidate key and the primary key for a given relation? b) With an example, briefly describe

More information

Relational model continued. Understanding how to use the relational model. Summary of board example: with Copies as weak entity

Relational model continued. Understanding how to use the relational model. Summary of board example: with Copies as weak entity COS 597A: Principles of Database and Information Systems Relational model continued Understanding how to use the relational model 1 with as weak entity folded into folded into branches: (br_, librarian,

More information

CPS 510 Data Base I. There are 3 forms of database descriptions the ANSI/SPARK, 1975 and so on

CPS 510 Data Base I. There are 3 forms of database descriptions the ANSI/SPARK, 1975 and so on Introduction DBMS 1957 A database can be defined as a set of Master files, organized & administered in a flexible way, so that the files in the database can be easily adapted to new unforeseen tasks! Relation

More information

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 8: Database effektivitet. 31. marts Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 8: Database effektivitet. 31. marts Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 8: Database effektivitet. 31. marts 2005 Forelæser: Rasmus Pagh Today s lecture Database efficiency Indexing Schema tuning 1 Database

More information

What is an algebra? A formal system of manipulation of symbols to deal with general statements of relations.

What is an algebra? A formal system of manipulation of symbols to deal with general statements of relations. Lecture 4. Relational Algebra By now, we know that (a) All data in a relational DB is stored in tables (b) there are several tables in each DB (because of Normalization), and (c) often the information

More information

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model.

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model. Chapter 6: Entity-Relationship Model The Next Step: Designing DB Schema Our Story So Far: Relational Tables Databases are structured collections of organized data The Relational model is the most common

More information

Chapter 17: Parallel Databases

Chapter 17: Parallel Databases Chapter 17: Parallel Databases Introduction I/O Parallelism Interquery Parallelism Intraquery Parallelism Intraoperation Parallelism Interoperation Parallelism Design of Parallel Systems Database Systems

More information

CS Reading Packet: "Database Processing and Development"

CS Reading Packet: Database Processing and Development CS 325 - Reading Packet: "Database Processing and Development" p. 1 CS 325 - Reading Packet: "Database Processing and Development" SOURCES: Kroenke, "Database Processing: Fundamentals, Design, and Implementation",

More information

BOOLEAN ALGEBRA AND CIRCUITS

BOOLEAN ALGEBRA AND CIRCUITS UNIT 3 Structure BOOLEAN ALGEBRA AND CIRCUITS Boolean Algebra and 3. Introduction 3. Objectives 3.2 Boolean Algebras 3.3 Logic 3.4 Boolean Functions 3.5 Summary 3.6 Solutions/ Answers 3. INTRODUCTION This

More information

Queries with Order-by Clauses and Aggregates on Factorised Relational Data

Queries with Order-by Clauses and Aggregates on Factorised Relational Data Queries with Order-by Clauses and Aggregates on Factorised Relational Data Tomáš Kočiský Magdalen College University of Oxford A fourth year project report submitted for the degree of Masters of Mathematics

More information

Relational Database Systems Part 01. Karine Reis Ferreira

Relational Database Systems Part 01. Karine Reis Ferreira Relational Database Systems Part 01 Karine Reis Ferreira karine@dpi.inpe.br Aula da disciplina Computação Aplicada I (CAP 241) 2016 Database System Database: is a collection of related data. represents

More information

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called Q.1 Short Questions Marks 1. Considering functional dependency, one in which removal from some attributes must affect dependency is called 01 A. full functional dependency B. partial dependency C. prime

More information

Element Algebra. 1 Introduction. M. G. Manukyan

Element Algebra. 1 Introduction. M. G. Manukyan Element Algebra M. G. Manukyan Yerevan State University Yerevan, 0025 mgm@ysu.am Abstract. An element algebra supporting the element calculus is proposed. The input and output of our algebra are xdm-elements.

More information

Chapter 8: The Relational Algebra and The Relational Calculus

Chapter 8: The Relational Algebra and The Relational Calculus Ramez Elmasri, Shamkant B. Navathe(2017) Fundamentals of Database Systems (7th Edition),pearson, isbn 10: 0-13-397077-9;isbn-13:978-0-13-397077-7. Chapter 8: The Relational Algebra and The Relational Calculus

More information

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 25-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 25-1 Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 25-1 Chapter 25 Distributed Databases and Client-Server Architectures Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 25 Outline

More information

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes.

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes. Chapter 6: Entity-Relationship Model Our Story So Far: Relational Tables Databases are structured collections of organized data The Relational model is the most common data organization model The Relational

More information

Outline. q Database integration & querying. q Peer-to-Peer data management q Stream data management q MapReduce-based distributed data management

Outline. q Database integration & querying. q Peer-to-Peer data management q Stream data management q MapReduce-based distributed data management Outline n Introduction & architectural issues n Data distribution n Distributed query processing n Distributed query optimization n Distributed transactions & concurrency control n Distributed reliability

More information

CPS352 Lecture - The Transaction Concept

CPS352 Lecture - The Transaction Concept Objectives: CPS352 Lecture - The Transaction Concept Last Revised March 3, 2017 1. To introduce the notion of a transaction and the ACID properties of a transaction 2. To introduce the notion of the state

More information

RELATIONAL QUERY LANGUAGES

RELATIONAL QUERY LANGUAGES RELATIONAL QUERY LANGUAGES These comments we make on the relational data model are a short introduction to the types of query languages which can be used against a relational database. Before we start

More information

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70

ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design. Submitted by, Roll Numbers:-49-70 ASSIGNMENT- I Topic: Functional Modeling, System Design, Object Design Submitted by, Roll Numbers:-49-70 Functional Models The functional model specifies the results of a computation without specifying

More information

A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered

More information

Basant Group of Institution

Basant Group of Institution Basant Group of Institution Visual Basic 6.0 Objective Question Q.1 In the relational modes, cardinality is termed as: (A) Number of tuples. (B) Number of attributes. (C) Number of tables. (D) Number of

More information