Lecture 7: Relational Algebra and Select Queries

Total Page:16

File Type:pdf, Size:1020Kb

Lecture 7: Relational Algebra and Select Queries Lecture 7: Relational Algebra and Select Queries Introduction Over the past several lectures we have been discussing the design and construction of relational databases. Last lecture we looked specifically at building relations in a database for restaurants. Today’s discussion will look at using relational algebra to extract information from relations. We will begin the discussion with two definitions; then describe each relational algebra operator; and conclude with a brief discussion of how these operators are used to make select queries. Definitions Relational Algebra: a collection of operators, such as join, union, and intersect, that take relations as their operands and return relations as their result Relational Closure: because the product of every operation is the same kind of object as the input, the output can become input for additional operations For example, the Relational Operator, Union, operates on the relations, A and B, to produce a new relation, AB (relational algebra). Because AB is a relation, it can be used in subsequent operations (relational closure). Relational Algebra Operators In 1970, E.F. Codd identified eight relational algebra operators (Codd 1970). Today, these remain the basis for most database transactions. Codd categorized these eight at Traditional (Union, Intersection, Difference, and Product) and Special (Restrict, Project, Join, and Divide). The following table contains definitions and graphic aids for each of these operators. RNR/GEOG 417-517 Gary L. Christopherson Traditional Operators Union Returns a relation consisting of all tuples appearing in either or both of two specified relations. Relations must be same shape. That is, the two tables must contain the same number of attributes, and each attribute in the tables must be defined in exactly the same way. For example, a Union of the following tables results in a table that contains all the records from the two tables. A B S# SNAME SATUS CITY S# SNAME STATUS CITY S1 Smith 20 London S1 Smith 20 London S4 Clark 20 London S2 Jones 20 Paris S# SNAME STATUS CITY A union B S1 Smith 20 London S4 Clark 20 London S2 Jones 20 Paris Intersect Returns a relation consisting of all tuples appearing in both of two specified relations. Relations must be same shape. RNR/GEOG 417-517 Gary L. Christopherson For example, an intersect of the two tables results in a table that contains only those tuples appearing in both tables. AB S# SNAME SATUS CITY S# SNAME STATUS CITY S1 Smith 20 London S1 Smith 20 London S4 Clark 20 London S2 Jones 20 Paris A intersect B S# SNAME STATUS CITY S1 Smith 20 London Difference Returns a relation consisting of all tuples appearing in the first and not the second of two specified relations. Relations must be same shape. For example, in the following difference operation on the two tables, the result is a talble that contains only those records in table A that don’t appear in table B. AB S# SNAME SATUS CITY S# SNAME STATUS CITY S1 Smith 20 London S1 Smith 20 London S4 Clark 20 London S2 Jones 20 Paris S# SNAME STATUS CITY A difference B S4 Clark 20 London Product Returns a relation consisting of all possible tuples that are a combination of two tuples, one from each of two specified relations. The cardinality of the result will be the product of the cardinality of the two relations, and the degree will be the sum of the RNR/GEOG 417-517 Gary L. Christopherson degrees of the two relations. Special Operators Restrict Returns a relation consisting of all tuples from a specified relation that meet a specified condition. Usually expressed as a WHERE clause. As in the example on the right, a Restrict operation selects records/tuples. S WHERE City = London Project Returns a relation consisting of all tuples that remain as (sub)tuples in a specified relation after specified attributes have been eliminated. As in the example on the right, a Project operation selects attributes from a relation. Parts [color, city] RNR/GEOG 417-517 Gary L. Christopherson Join Returns a relation consisting of all possible tuples that are a combination of two tuples, one from each of two specified relations, such that the two tuples contributing to any given combination have a common value for the common attribute(s) of the two relations (and that common value appears just once, not twice, in the resulting tuple). As in the example on the right, join is used to connect information from two tables that have a common attribute containing common values Divide Takes two relations, one binary and one unary, and returns a relation consisting of all values of one attribute of the binary relation that match (in the other attribute) all values in the unary relation. Divide is particularly helpful if you are asking for all of something. For example, if you have a table containing a list of movies that you want to see, and a table containing names of theaters and the movies they are playing. Using the operator Divide, you can ask for the names of theaters that are playing all the movies from your list. Theatre Movie Movies I want to see Regal Reservoir Dogs Reservoir Dogs Regal Bourne Identity My Little Pony Imperial Bourne Identity Divide Imperial My Little Pony Imperial Reservoir Dogs Royal My Little Pony Royal Bourne Identity Imperial RNR/GEOG 417-517 Gary L. Christopherson Relational Algebra and Select Queries Using these eight operators it is possible to carry out a variety of management tasks for a relational database, but for most users the most common task will be the select query. A select query asks for information based on values in particular tuples in particular attributes in particular tables. For example, we might want to know the names of all the movies currently playing, whose stars were born before 1940. Given the proper relations in a database, and using relational algebra, it is possible to search the values in the relations to identify all the movies that met these conditions and return a relation containing their names. Creating select queries requires a computer language that will interface with the database. The industry standard query language is Structured Query Language (SQL) developed by IBM in the 1970’s. SQL uses the relational algebra operators discussed above to retrieve, add, modify, or delete data. A standard format for writing a select query in SQL (below) uses the operators Project, Join, and Restrict to return a table containing the information sought by the user. Because this begins with tables and ends with a table, you have relational closure. Even simple select queries are often very complex, representing the complexity of the database structure. In this Microsoft Access example, the query is looking for restaurants where the cost is low, or the dress code is casual; a fairly simple question for the complexity of the SQL statement. RNR/GEOG 417-517 Gary L. Christopherson Because this complexity frightens many users, application developers have designed aids for writing SQL statements. For example, Microsoft Access uses a method called Relational Query by Example (RQBE). This allows the user to drag and drop representations of relations, relationships, and attributes into a Query Grid. The figure below shows the same query for restaurants where the cost is low, or the dress code is casual built in the Access Query Grid. Don’t be misled by the apparent simplicity of RQBE, because the power behind the scenes remains SQL. The software simply translates the drag-and-drop actions of the user to SQL statements. RNR/GEOG 417-517 Gary L. Christopherson Summary Relational algebra allows users to manage relational databases, querying, added, deleting, and modifying data in tables. The most common of the eight relational algebra operators are restrict, project, and join. These three operators are particularly important in writing select queries. Using SQL statements, the user can create a new relation containing particular tuples from particular tables that answer particular questions. These SQL statements generally take the form of SELECT columns (Project) FROM tables (Join) WHERE row conditions are met (Restrict) Reference Cited: Codd, E. F. 1970 A Relational Model of Data for Large Shared Data Banks. Communications of the ACM 13(6):377-387. RNR/GEOG 417-517 Gary L. Christopherson .
Recommended publications
  • Semantic Queries by Example
    Semantic Queries by Example Lipyeow Lim Haixun Wang Min Wang University of Hawai‘i at Manoa¯ Microsoft Research Asia Google, Inc. [email protected] [email protected] [email protected] ABSTRACT 1. INTRODUCTION With the ever increasing quantities of electronic data, there A growing number of advanced applications such as prod- is a growing need to make sense out of the data. Many ad- uct information management (PIM) systems, customer re- vanced database applications are beginning to support this lationship management (CRM) systems, electronic medical need by integrating domain knowledge encoded as ontolo- records (EMRs) systems are recognizing the need to incor- gies into queries over relational data. However, it is ex- porate ontology into the realm of object relational databases tremely difficult to express queries against graph structured (ORDBMs) so that the user can query data and its related ontology in the relational SQL query language or its exten- ontology in a consistent manner [7, 14, 22]. However, it is sions. Moreover, semantic queries are usually not precise, extremely tedious and time consuming to understand ontol- especially when data and its related ontology are compli- ogy, and use ontology in database queries [15]. Such queries cated. Users often only have a vague notion of their infor- that leverage the semantic information stored in ontologies mation needs and are not able to specify queries precisely. to filter and retrieve data from relational tables are called In this paper, we address these challenges by introducing semantic queries. The success of the relational database a novel method to support semantic queries in relational technology is at least partly due to the spartan simplicity databases with ease.
    [Show full text]
  • Relational Algebra
    Relational Algebra Instructor: Shel Finkelstein Reference: A First Course in Database Systems, 3rd edition, Chapter 2.4 – 2.6, plus Query Execution Plans Important Notices • Midterm with Answers has been posted on Piazza. – Midterm will be/was reviewed briefly in class on Wednesday, Nov 8. – Grades were posted on Canvas on Monday, Nov 13. • Median was 83; no curve. – Exam will be returned in class on Nov 13 and Nov 15. • Please send email if you want “cheat sheet” back. • Lab3 assignment was posted on Sunday, Nov 5, and is due by Sunday, Nov 19, 11:59pm. – Lab3 has lots of parts (some hard), and is worth 13 points. – Please attend Labs to get help with Lab3. What is a Data Model? • A data model is a mathematical formalism that consists of three parts: 1. A notation for describing and representing data (structure of the data) 2. A set of operations for manipulating data. 3. A set of constraints on the data. • What is the associated query language for the relational data model? Two Query Languages • Codd proposed two different query languages for the relational data model. – Relational Algebra • Queries are expressed as a sequence of operations on relations. • Procedural language. – Relational Calculus • Queries are expressed as formulas of first-order logic. • Declarative language. • Codd’s Theorem: The Relational Algebra query language has the same expressive power as the Relational Calculus query language. Procedural vs. Declarative Languages • Procedural program – The program is specified as a sequence of operations to obtain the desired the outcome. I.e., how the outcome is to be obtained.
    [Show full text]
  • Relational Algebra and SQL Relational Query Languages
    Relational Algebra and SQL Chapter 5 1 Relational Query Languages • Languages for describing queries on a relational database • Structured Query Language (SQL) – Predominant application-level query language – Declarative • Relational Algebra – Intermediate language used within DBMS – Procedural 2 1 What is an Algebra? · A language based on operators and a domain of values · Operators map values taken from the domain into other domain values · Hence, an expression involving operators and arguments produces a value in the domain · When the domain is a set of all relations (and the operators are as described later), we get the relational algebra · We refer to the expression as a query and the value produced as the query result 3 Relational Algebra · Domain: set of relations · Basic operators: select, project, union, set difference, Cartesian product · Derived operators: set intersection, division, join · Procedural: Relational expression specifies query by describing an algorithm (the sequence in which operators are applied) for determining the result of an expression 4 2 The Role of Relational Algebra in a DBMS 5 Select Operator • Produce table containing subset of rows of argument table satisfying condition σ condition (relation) • Example: σ Person Hobby=‘stamps’(Person) Id Name Address Hobby Id Name Address Hobby 1123 John 123 Main stamps 1123 John 123 Main stamps 1123 John 123 Main coins 9876 Bart 5 Pine St stamps 5556 Mary 7 Lake Dr hiking 9876 Bart 5 Pine St stamps 6 3 Selection Condition • Operators: <, ≤, ≥, >, =, ≠ • Simple selection
    [Show full text]
  • The Comparison of SQL, QBE, and DFQL As Query Languages for Relational Databases
    Calhoun: The NPS Institutional Archive Theses and Dissertations Thesis Collection 1994-03 The comparison of SQL, QBE, and DFQL as query languages for relational databases Girsang, Paruntungan Monterey, California. Naval Postgraduate School http://hdl.handle.net/10945/30910 NAVAL POSTGRADUATE SCHOOL Monterey, California THESIS THE COMPARISON OF SQL, QBE, AND DFQL AS QUERY LANGUAGES FOR RELATIONAL DATABASES by Paruntungan Oirsang March 1994 Thesis Advisor: c. Thomas Wu Approved for pubhc release; distnbunon IS unlimited. The sis G4 5 42 "1,; ')I.EY KN OX Llr ... .• -:- ' J :;. ',,\1. POSTG' 'IOO! MONTEREY CI ." REPORT DOCUMENTATION PAGE f'W1 .. _ng ......... ,... _ .. .-._.. _' ... '.... _,............ __ . 'l1li __ ~"' ......... _'"" __ .... """"'"""' .... _ ... _ .. ___~ ..""' __.... II'/ __.. 1hiI <OI_ .............. --. __.......... "'.bu_"'-..... fIMoIo_-.O'_"" ____, 1211_ O""H~,S.i.,-. ......... VA~,01111 ..... ~ .. "'"'-.......... P_____ "......(o_8II,_....,tx:_ :~:::U::-_·_I a.~ORTDA~Q4 Master' The Comparison of ~QL. DFQL, and DFQL as Query Languages for Relational Databases L~.'_"") Girsang, Parunmngan LJIE MINO 7·N=Po~;:d':':'S'~~~~S)ANDADDRiSS(ESl AEPOIITNUMBEA Monterey, CA 93943-5000 ANDADDRESS(U) lo.SPONSORINGIMONITCAIMQ AQENCYIISPORTNI.IIIIBIiR t1.SUPPlEMENTARYNDTU The views expressed in this thesis are those of the author and do not reflect the official policy or position of the Department of Defense or the United States GovemmenL 13.AIBTRACT(Mui'l'llm2Oll_J Structw'e Query Language (SQL) and Query By Example (QBE) are the most widely used query languages for Relational Database Management Systems (RDBMS·s). However, both of them have problems concerning ease-of-use issues. especially in expressing universal quantification, specifying complex nested queries. and flexibility and consistency in specifying queries with respect to data retrieval.
    [Show full text]
  • Session 5 – Main Theme
    Database Systems Session 5 – Main Theme Relational Algebra, Relational Calculus, and SQL Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Presentation material partially based on textbook slides Fundamentals of Database Systems (6th Edition) by Ramez Elmasri and Shamkant Navathe Slides copyright © 2011 and on slides produced by Zvi Kedem copyight © 2014 1 Agenda 1 Session Overview 2 Relational Algebra and Relational Calculus 3 Relational Algebra Using SQL Syntax 5 Summary and Conclusion 2 Session Agenda . Session Overview . Relational Algebra and Relational Calculus . Relational Algebra Using SQL Syntax . Summary & Conclusion 3 What is the class about? . Course description and syllabus: » http://www.nyu.edu/classes/jcf/CSCI-GA.2433-001 » http://cs.nyu.edu/courses/fall11/CSCI-GA.2433-001/ . Textbooks: » Fundamentals of Database Systems (6th Edition) Ramez Elmasri and Shamkant Navathe Addition Wesley ISBN-10: 0-1360-8620-9, ISBN-13: 978-0136086208 6th Edition (04/10) 4 Icons / Metaphors Information Common Realization Knowledge/Competency Pattern Governance Alignment Solution Approach 55 Agenda 1 Session Overview 2 Relational Algebra and Relational Calculus 3 Relational Algebra Using SQL Syntax 5 Summary and Conclusion 6 Agenda . Unary Relational Operations: SELECT and PROJECT . Relational Algebra Operations from Set Theory . Binary Relational Operations: JOIN and DIVISION . Additional Relational Operations . Examples of Queries in Relational Algebra . The Tuple Relational Calculus . The Domain Relational Calculus 7 The Relational Algebra and Relational Calculus . Relational algebra . Basic set of operations for the relational model . Relational algebra expression . Sequence of relational algebra operations . Relational calculus . Higher-level declarative language for specifying relational queries 8 Unary Relational Operations: SELECT and PROJECT (1/3) .
    [Show full text]
  • Ch06-The Relational Algebra and Calculus.Pdf
    Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 1 Chapter 6 The Relational Algebra and Calculus Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter Outline Relational Algebra Unary Relational Operations Relational Algebra Operations From Set Theory Binary Relational Operations Additional Relational Operations Examples of Queries in Relational Algebra Relational Calculus Tuple Relational Calculus Domain Relational Calculus Example Database Application (COMPANY) Overview of the QBE language (appendix D) Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 3 Relational Algebra Overview Relational algebra is the basic set of operations for the relational model These operations enable a user to specify basic retrieval requests (or queries) The result of an operation is a new relation, which may have been formed from one or more input relations This property makes the algebra “closed” (all objects in relational algebra are relations) Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 4 Relational Algebra Overview (continued) The algebra operations thus produce new relations These can be further manipulated using operations of the same algebra A sequence of relational algebra operations forms a relational algebra expression The result of a relational algebra expression is also a relation that represents the result of a database query (or retrieval request) Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 5 Brief History of Origins of Algebra Muhammad ibn Musa al-Khwarizmi (800-847 CE) wrote a book titled al-jabr about arithmetic of variables Book was translated into Latin. Its title (al-jabr) gave Algebra its name. Al-Khwarizmi called variables “shay” “Shay” is Arabic for “thing”.
    [Show full text]
  • Relational Algebra & Relational Calculus
    Relational Algebra & Relational Calculus Lecture 4 Kathleen Durant Northeastern University 1 Relational Query Languages • Query languages: Allow manipulation and retrieval of data from a database. • Relational model supports simple, powerful QLs: • Strong formal foundation based on logic. • Allows for optimization. • Query Languages != programming languages • QLs not expected to be “Turing complete”. • QLs not intended to be used for complex calculations. • QLs support easy, efficient access to large data sets. 2 Relational Query Languages • Two mathematical Query Languages form the basis for “real” query languages (e.g. SQL), and for implementation: • Relational Algebra: More operational, very useful for representing execution plans. • Basis for SEQUEL • Relational Calculus: Let’s users describe WHAT they want, rather than HOW to compute it. (Non-operational, declarative.) • Basis for QUEL 3 4 Cartesian Product Example • A = {small, medium, large} • B = {shirt, pants} A X B Shirt Pants Small (Small, Shirt) (Small, Pants) Medium (Medium, Shirt) (Medium, Pants) Large (Large, Shirt) (Large, Pants) • A x B = {(small, shirt), (small, pants), (medium, shirt), (medium, pants), (large, shirt), (large, pants)} • Set notation 5 Example: Cartesian Product • What is the Cartesian Product of AxB ? • A = {perl, ruby, java} • B = {necklace, ring, bracelet} • What is BxA? A x B Necklace Ring Bracelet Perl (Perl,Necklace) (Perl, Ring) (Perl,Bracelet) Ruby (Ruby, Necklace) (Ruby,Ring) (Ruby,Bracelet) Java (Java, Necklace) (Java, Ring) (Java, Bracelet) 6 Mathematical Foundations: Relations • The domain of a variable is the set of its possible values • A relation on a set of variables is a subset of the Cartesian product of the domains of the variables. • Example: let x and y be variables that both have the set of non- negative integers as their domain • {(2,5),(3,10),(13,2),(6,10)} is one relation on (x, y) • A table is a subset of the Cartesian product of the domains of the attributes.
    [Show full text]
  • Relational Algebra Expression Evaluation
    Faculty of Informatics, Masaryk University Relational Algebra Expression Evaluation Bachelor's Thesis Lucie Molkov´a Brno, spring 2009 Declaration Thereby I declare that this thesis is my original work, which I have created on my own. All sources and literature used in writing the thesis, as well as any quoted material, are properly cited, including full reference to its source. Advisor: RNDr. Vlastislav Dohnal, Ph.D. Acknowledgements I would like to thank my advisor RNDr. Vlastislav Dohnal, Ph.D. for the help and motivation he provided throughout my work on this thesis and to Loren K. Rhodes, Ph.D. for valuable inputs. Special thanks go to Tom´aˇsJanouˇsekand Bc. Petr Roˇckai for support and ideas that saved me a lot of time. Abstract Relational algebra is a query language that is being used to explain basic relational operations and their principles. Many books and articles are concerned with the theory of relational algebra, however there is no practical use for it. One of the reasons is that no software exists that would allow a real use of relational alge- bra. Most of the currently used relational database management systems work with SQL queries. This work therefore describes and implemets a tool that transforms a relational algebra expressions into SQL queries, allowing the expressions to be evaluated in standard databases. This work also defines a new, applicable syntax for relational algebra and describes its grammar in order to ensure the correctness of the expressions. Keywords Relationa Algebra, SQL, Transformation, Perl, Parsing, Parse::Yapp, Syntax Anal- ysis, Semantic Analysis Contents 1 Introduction 7 1.1 Objectives .
    [Show full text]
  • Algebraic Operations on Tabular Data Context 6.1 Basic Idea of Relational
    Context Database Design: 6 The Relational Data Model: e s - developing a relational a Requirements analysis b database schema Algebraic operations on tabular data a t Design: a d - formal theory 6.1 Basic idea of relational languages Conceptual Design g n i Data handling in a rela- s 6.2 Relational Algebra operations u tional database Schema design d 6.3 Relational Algebra: Syntax and Semantics n - Algebra,-calculus -SQL -logical a (“create tables”) g Extensions 6.4. More Operators n i n g Using Databases 6.5 Special Topics of RA i s from application progs 6.5.1 Relational algebra operators in SQL e D : Special topics, 6.5.2 Relational completeness 1 Schema design t Physical Schema, 6.5.3 What is missing in RA? r a -physical P 6.5.4 RA operator trees Part 2: (“create access path”) Implementation of DBS Loading, administration, Transaction, Kemper / Eickler: 3.4, Elmasri /Navathe: chap. 74-7.6, tuning, maintenance, Concurrency control Garcia-Molina, Ullman, Widom: chap. 5 reorganization Recovery 6.1 Basic idea of relational languages Relational Languages • Data Model: Important concepts Goal of language design Language for definition and Given a relational database like the Video shop DB handling (manipulation ) of data Design a language, which allows to express queries – Languages for handling data: like: • Relational Algebra (RA) as a semantically well defined - Customers who rented videos for more than 100 $ last month applicative language - List of all movies no copy of which have been on loan since 2 month - List the total sales volume of each movie within the last year • Relational tuple calculus (domain calculus): predicate logic - Is there anybody whose rented movies all have category "horror"? interpretation of data and queries y? …….
    [Show full text]
  • Relational Databases, Logic, and Complexity
    Relational Databases, Logic, and Complexity Phokion G. Kolaitis University of California, Santa Cruz & IBM Research-Almaden [email protected] 2009 GII Doctoral School on Advances in Databases 1 What this course is about Goals: Cover a coherent body of basic material in the foundations of relational databases Prepare students for further study and research in relational database systems Overview of Topics: Database query languages: expressive power and complexity Relational Algebra and Relational Calculus Conjunctive queries and homomorphisms Recursive queries and Datalog Selected additional topics: Bag Semantics, Inconsistent Databases Unifying Theme: The interplay between databases, logic, and computational complexity 2 Relational Databases: A Very Brief History The history of relational databases is the history of a scientific and technological revolution. Edgar F. Codd, 1923-2003 The scientific revolution started in 1970 by Edgar (Ted) F. Codd at the IBM San Jose Research Laboratory (now the IBM Almaden Research Center) Codd introduced the relational data model and two database query languages: relational algebra and relational calculus . “A relational model for data for large shared data banks”, CACM, 1970. “Relational completeness of data base sublanguages”, in: Database Systems, ed. by R. Rustin, 1972. 3 Relational Databases: A Very Brief History Researchers at the IBM San Jose Laboratory embark on the System R project, the first implementation of a relational database management system (RDBMS) In 1974-1975, they develop SEQUEL , a query language that eventually became the industry standard SQL . System R evolved to DB2 – released first in 1983. M. Stonebraker and E. Wong embark on the development of the Ingres RDBMS at UC Berkeley in 1973.
    [Show full text]
  • Database Management Systems Solutions Manual Third Edition
    DATABASE MANAGEMENT SYSTEMS SOLUTIONS MANUAL THIRD EDITION Raghu Ramakrishnan University of Wisconsin Madison, WI, USA Johannes Gehrke Cornell University Ithaca, NY, USA Jeff Derstadt, Scott Selikoff, and Lin Zhu Cornell University Ithaca, NY, USA CONTENTS PREFACE iii 1 INTRODUCTION TO DATABASE SYSTEMS 1 2 INTRODUCTION TO DATABASE DESIGN 6 3THERELATIONALMODEL 16 4 RELATIONAL ALGEBRA AND CALCULUS 28 5 SQL: QUERIES, CONSTRAINTS, TRIGGERS 45 6 DATABASE APPLICATION DEVELOPMENT 63 7 INTERNET APPLICATIONS 66 8 OVERVIEW OF STORAGE AND INDEXING 73 9 STORING DATA: DISKS AND FILES 81 10 TREE-STRUCTURED INDEXING 88 11 HASH-BASED INDEXING 100 12 OVERVIEW OF QUERY EVALUATION 119 13 EXTERNAL SORTING 126 14 EVALUATION OF RELATIONAL OPERATORS 131 i iiDatabase Management Systems Solutions Manual Third Edition 15 A TYPICAL QUERY OPTIMIZER 144 16 OVERVIEW OF TRANSACTION MANAGEMENT 159 17 CONCURRENCY CONTROL 167 18 CRASH RECOVERY 179 19 SCHEMA REFINEMENT AND NORMAL FORMS 189 20 PHYSICAL DATABASE DESIGN AND TUNING 204 21 SECURITY 215 PREFACE It is not every question that deserves an answer. Publius Syrus, 42 B.C. I hope that most of the questions in this book deserve an answer. The set of questions is unusually extensive, and is designed to reinforce and deepen students’ understanding of the concepts covered in each chapter. There is a strong emphasis on quantitative and problem-solving type exercises. While I wrote some of the solutions myself, most were written originally by students in the database classes at Wisconsin. I’d like to thank the many students who helped in developing and checking the solutions to the exercises; this manual would not be available without their contributions.
    [Show full text]
  • Chapter (5) the Relational Data Model, Relational Constraints, and the Relational Algebra
    Chapter (5) The Relational Data Model, Relational Constraints, and the Relational Algebra Objectives • Describe the basic principals of the relational model of data • Define the modeling concepts and notation of the relational model • Learn about the relational constraints • Define the update operations of the relational model • Handling the violations of the integrity constraints • Learn about relational algebra that is used to manipulate relations and specifying queries. The relational model was first introduced by Ted Codd of IBM Research in a 1970 in a classic paper [Codd 1970]. 1 Relational Model Concepts The relational model represents the database as a collection of relations. A relation is often resembles a table of values or to some extent, a “flat” file of records. There are important differences between relations and files. A relation that is thought as a table of values contains rows that represent a collection of related values. In the formal relational model terminology, a row is called a tuple, a column header is called an attribute, and the table is called a relation. The data type describing the types of values that can appear in each column is called a domain. 2 1 Domains A domain D is a set of values that are indivisible as far as the relational model is concerned, i.e., it contains a set of atomic values. Examples: USA_Phone numbers. Which is ….. Local_phone_numbers. Which is … Names: The set of names of persons. Social_security_numbers: The set of valid 9-digit social security numbers. GPA: A real value between 0 and 4. There is a data type of format associated with each domain.
    [Show full text]