Relational Algebra Lecture #5: Relational Algebra – Rel

Total Page:16

File Type:pdf, Size:1020Kb

Relational Algebra Lecture #5: Relational Algebra – Rel Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Overview Carnegie Mellon Univ. School of Computer Science • history 15-415 - Database Applications • concepts • Formal query languages – relational algebra Lecture #5: Relational Algebra – rel. tuple calculus – rel. domain calculus Faloutsos CMU SCS 15-415 #2 CMU SCS CMU SCS History Concepts - reminder • before: records, pointers, sets etc • Database: a set of relations (= tables) • introduced by E.F. Codd in 1970 • rows: tuples • revolutionary! • columns: attributes (or keys) • first systems: 1977-8 (System R; Ingres) • superkey, candidate key, primary key • Turing award in 1981 Faloutsos CMU SCS 15-415 #3 Faloutsos CMU SCS 15-415 #4 CMU SCS CMU SCS Example Example: cont’d k-th attribute Database: Database: (Dk domain) STUDENT SSN c-id grade Ssn Name Address 123 15-413 A rel. schema (attr+domains) 123 smith main str 234 15-413 B 234 jones forbes ave tuple Faloutsos CMU SCS 15-415 #5 Faloutsos CMU SCS 15-415 #6 1 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Example: cont’d Example: cont’d • Di: the domain of the i-th attribute (eg., char(10) rel. schema (attr+domains) rel. schema (attr+domains) instance instance Faloutsos CMU SCS 15-415 #7 Faloutsos CMU SCS 15-415 #8 CMU SCS CMU SCS Overview Formal query languages • history • How do we collect information? • concepts • Eg., find ssn’s of people in 415 • Formal query languages • (recall: everything is a set!) – relational algebra • One solution: Rel. algebra, ie., set operators – rel. tuple calculus • Q1: Which ones?? – rel. domain calculus • Q2: what is a minimal set of operators? Faloutsos CMU SCS 15-415 #9 Faloutsos CMU SCS 15-415 #10 CMU SCS CMU SCS Relational operators Example: • . • Q: find all students (part or full time) • . • A: PT-STUDENT union FT-STUDENT STUDENT• . Ssn• set unionName Address U 123 smith main str FT-STUDENT PT-STUDENT • set234 differencejones forbes ‘-’ ave Ssn Name Ssn Name Address 129 peters main str 123 smith main str 239 lee 5th ave 234 jones forbes ave Faloutsos CMU SCS 15-415 #11 Faloutsos CMU SCS 15-415 #12 2 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Observations: Observations: • two tables are ‘union compatible’ if they • A: redundant: have the same attributes (‘domains’) • STUDENT intersection STAFF = U • Q: how about intersection STUDENT STAFF Faloutsos CMU SCS 15-415 #13 Faloutsos CMU SCS 15-415 #14 CMU SCS CMU SCS Observations: Observations: • A: redundant: • A: redundant: • STUDENT intersection STAFF = • STUDENT intersection STAFF = STUDENT - (STUDENT - STAFF) STUDENT STAFF STUDENT STAFF Faloutsos CMU SCS 15-415 #15 Faloutsos CMU SCS 15-415 #16 CMU SCS CMU SCS Observations: Relational operators • A: redundant: • . • STUDENT intersection STAFF = • . STUDENT - (STUDENT - STAFF) • . • set union U Double negation: • set difference ‘-’ We’ll see it again, later… Faloutsos CMU SCS 15-415 #17 Faloutsos CMU SCS 15-415 #18 3 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Other operators? Other operators? • eg, find all students on ‘Main street’ • Notice: selection (and rest of operators) • A: ‘selection’ expect tables, and produce tables (-> can be cascaded!!) (STUDENT) address'mainstr' • For selection, in general: STUDENT (RELATION) Ssn Name Address condition 123 smith main str 234 jones forbes ave Faloutsos CMU SCS 15-415 #19 Faloutsos CMU SCS 15-415 #20 CMU SCS CMU SCS Selection - examples Relational operators • Find all ‘Smiths’ on ‘Forbes Ave’ • selection condition (R) • . name'Smith' address'Forbes ave' (STUDENT) • . • set union R U S ‘condition’ can be any boolean combination of ‘=‘, • set difference R - S ‘>’, ‘>=‘, ... Faloutsos CMU SCS 15-415 #21 Faloutsos CMU SCS 15-415 #22 CMU SCS CMU SCS Relational operators Relational operators • selection picks rows - how about columns? Cascading: ‘find ssn of students on ‘forbes ave’ • A: ‘projection’ - eg.: ssn (STUDENT) ssn ( address' forbesave' (STUDENT)) finds all the ‘ssn’ - removing duplicates STUDENT Ssn Name Address 123 smith main str 234 jones forbes ave Faloutsos CMU SCS 15-415 #23 Faloutsos CMU SCS 15-415 #24 4 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Relational operators Relational operators • selection Are we done yet? • projection Q: Give a query we can not answer yet! attlist (R) • . • set union R U S STUDENT • set differenceSsn Name Address R - S 123 smith main str 234 jones forbes ave Faloutsos CMU SCS 15-415 #25 Faloutsos CMU SCS 15-415 #26 CMU SCS CMU SCS Relational operators Relational operators A: any query across two or more tables, A: any query across two or more tables, condition (R) eg., ‘find names of students in 15-415’ eg., ‘find names of students in 15-415’ Q: what extra operator do we need?? Q: what extra operator do we need?? A: surprisingly, cartesian product is enough! TAKES SSN c-id grade 123 15-413 A 234 15-413 B Faloutsos CMU SCS 15-415 #27 Faloutsos CMU SCS 15-415 #28 CMU SCS CMU SCS Cartesian product so what? • eg., dog-breeding: MALE x FEMALE • Eg., how do we find names of students taking • gives all possible couples 415? SSN c-id grade MALE FEMALE M.name F.name 123 15-415 A name x name = spike lassie 234 15-413 B spike lassie spike shiba spot shiba spot lassie spot shiba Faloutsos CMU SCS 15-415 #29 Faloutsos CMU SCS 15-415 #30 5 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Cartesian product Cartesian product • A: .. cid15415( STUDENT.ssnTAKES.ssn(STUDENT x TAKES)) ......... STUDENT.ssnTAKES.ssn (STUDENT x TAKES) attlist (R) Ssn Name Address ssn cid grade 123 smith main str 123 15-415 A 234 jones forbes ave 123 15-415 A 123 smith main str 234 15-413 B 234 jones forbes ave 234 15-413 B Faloutsos CMU SCS 15-415 #31 Faloutsos CMU SCS 15-415 #32 CMU SCS CMU SCS FUNDAMENTAL Relational operators name( ( (STUDENT x TAKES)) • selection cid 15415 STUDENT.ssnTAKES.ssn condition (R) ) • projection • cartesian product MALE x FEMALE • set union R U S • set difference R - S Faloutsos CMU SCS 15-415 #33 Faloutsos CMU SCS 15-415 #34 CMU SCS CMU SCS Relational ops Joins • Surprisingly, they are enough, to help us • Equijoin: R R.aS.b S R.aS.b (R S) answer almost any query we want!! • derived/convenience operators: – set intersection – join (theta join, equi-join, natural join) – ‘rename’ operator R' (R) – division R S Faloutsos CMU SCS 15-415 #35 Faloutsos CMU SCS 15-415 #36 6 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Cartesian product Joins • A: • Equijoin: ......... STUDENT.ssnTAKES.ssn (STUDENT x TAKES) • theta-joins: R S Ssn Name Address ssn cid grade generalization of equi-join - any condition 123 smith main str 123 15-415 A 234 jones forbes ave 123 15-415 A 123 smith main str 234 15-413 B 234 jones forbes ave 234 15-413 B Faloutsos CMU SCS 15-415 #37 Faloutsos CMU SCS 15-415 #38 CMU SCS CMU SCS Joins Joins • very popular: natural join: R S • nat. join has 5 attributes STUDENT TAKES • like equi-join, but it drops duplicate columns: STUDENT (ssn, name, address) TAKES (ssn, cid, grade) equi-join: 6 STUDENT STUDENT.ssnTAKES.ssn TAKES Faloutsos CMU SCS 15-415 #39 Faloutsos CMU SCS 15-415 #40 CMU SCS CMU SCS Natural Joins - nit-picking Overview - rel. algebra • if no attributes in common between R, S: • fundamentalR operators R.aS. b S R.aS.b (R S) nat. join -> cartesian product • derived operators – joins etc – rename – division • examples Faloutsos CMU SCS 15-415 #41 Faloutsos CMU SCS 15-415 #42 7 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Rename op. Rename op. • Q: why? AFTER (BEFORE) • PC (parent-id, child-id) PC PC • A: shorthand; self-joins; … • for example, find the grand-parents of PC ‘Tom’, given PC (parent-id, child-id) p-id c-id Mary Tom Peter Mary John Tom Faloutsos CMU SCS 15-415 #43 Faloutsos CMU SCS 15-415 #44 CMU SCS CMU SCS Rename op. Rename op. • first, WRONG attempt: • we clearly need two different names for the same table - hence, the ‘rename’ op. • (why? how many columns?) • Second WRONG attempt: PC1 (PC) PC1.cidPC . pid PC PC PC .cidPC . pid PC Faloutsos CMU SCS 15-415 #45 Faloutsos CMU SCS 15-415 #46 CMU SCS CMU SCS Overview - rel. algebra Division • fundamental operators • Rarely used, but powerful. • derived operators • Example: find suspicious suppliers, ie., – joins etc suppliers that supplied all the parts in – rename A_BOMB – division • examples Faloutsos CMU SCS 15-415 #47 Faloutsos CMU SCS 15-415 #48 8 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Division Division SHIPMENT • Observations: ~reverse of cartesian product s# p# ABOMB BAD_S • It can be derived from the 5 fundamental s1 p1 p# s# s2 p1 operators (!!) p1 s1 s1 p2 p2 • How? s3 p1 s5 p3 Faloutsos CMU SCS 15-415 #49 Faloutsos CMU SCS 15-415 #50 CMU SCS CMU SCS Division Division • Answer: • Answer: r s (r) [( (r)s) r] (RS) (RS) (RS) • Observation: find ‘good’ suppliers, and • Observation: find ‘good’ suppliers, and subtract! (double negation) subtract! (double negation) Faloutsos CMU SCS 15-415 #51 Faloutsos CMU SCS 15-415 #52 CMU SCS CMU SCS Division Division • Answer: • Answer: All suppliers all possible All bad parts suspicious shipments Faloutsos CMU SCS 15-415 #53 Faloutsos CMU SCS 15-415 #54 9 Faloutsos CMU SCS 15-415 CMU SCS CMU SCS Division Division SHIPMENT• Answer: • Answer: s# p# ABOMB BAD_S s1 p1 p# s# s2 p1 p1 s1 s1 p2 p2 s3 p1 STUDENT s5 p3 Ssn Name Addressall possible 123 smith main str all suppliers who missed suspicious shipments 234 jones forbes ave at least one suspicious shipment, that didn’t happen i.e.: ‘good’ suppliers Faloutsos CMU SCS 15-415 #55 Faloutsos CMU SCS 15-415 #56 CMU SCS CMU SCS Overview - rel.
Recommended publications
  • Using Relational Databases in the Engineering Repository Systems
    USING RELATIONAL DATABASES IN THE ENGINEERING REPOSITORY SYSTEMS Erki Eessaar Department of Informatics, Tallinn University of Technology, Raja 15,12618 Tallinn, Estonia Keywords: Relational data model, Object-relational data model, Repository, Metamodeling. Abstract: Repository system can be built on top of the database management system (DBMS). DBMSs that use relational data model are usually not considered powerful enough for this purpose. In this paper, we analyze these claims and conclude that they are caused by the shortages of SQL standard and inadequate implementations of the relational model in the current DBMSs. Problems that are presented in the paper make usage of the DBMSs in the repository systems more difficult. This paper also explains that relational system that follows the rules of the Third Manifesto is suitable for creating repository system and presents possible design alternatives. 1 INTRODUCTION technologies in one data model is ROSE (Hardwick & Spooner, 1989) that is experimental data "A repository is a shared database of information management system for the interactive engineering about the engineered artifacts." (Bernstein, 1998) applications. Bernstein (2003) envisions that object- These artifacts can be software engineering artifacts relational systems are good platform for the model like models and patterns. Repository system contains management systems. ORIENT (Zhang et al., 2001) a repository manager and a repository (database) and SFB-501 Reuse Repository (Mahnke & Ritter, (Bernstein, 1998). Bernstein (1998) explains that 2002) are examples of the repository systems that repository manager provides services for modeling, use a commercial ORDBMS. ORDBMS in this case retrieving, and managing objects in the repository is a system which uses a database language that and therefore must offer functions of the Database conforms to SQL:1999 or later standard.
    [Show full text]
  • Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications
    Faloutsos CMU SCS 15-415 CMU SCS Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications C. Faloutsos Lecture#1: Introduction CMU SCS Outline • Introduction to DBMSs • The Entity Relationship model • The Relational Model • SQL: the commercial query language • DB design: FD, 3NF, BCNF • indexing, q-opt • concurrency control & recovery • advanced topics (data mining, multimedia) Faloutsos CMU SCS 15-415 2 CMU SCS We’ll learn: • What are RDBMS – when to use them – how to model data with them – how to store and retrieve information – how to search quickly for information • Internals of an RDBMS: indexing, transactions Faloutsos CMU SCS 15-415 3 1 Faloutsos CMU SCS 15-415 CMU SCS We’ll learn (cnt’d) • Advanced topics – multimedia indexing (how to find similar, eg., images) – data mining (how to find patterns in data) Faloutsos CMU SCS 15-415 4 CMU SCS Administrivia • Weights: as announced Course grade 30% 30% 40% Sum= ASGN MT Final exam 100% 5% 5% ASGN1 … ASGN8 Faloutsos CMU SCS 15-415 5 CMU SCS Administrivia - II • FYI: ASGN3 and ASGN7 are heavy • Late policy: 4 ‘slip days’ • Exams: no aids allowed, except – 1 page with your notes (both sides) for MT – 2 such pages for Final Faloutsos CMU SCS 15-415 6 2 Faloutsos CMU SCS 15-415 CMU SCS Detailed outline • Introduction – Motivating example – How do DBMSs work? DDL, DML, views. – Fundamental concepts – DBMS users – Overall system architecture – Conclusions Faloutsos CMU SCS 15-415 7 CMU SCS What is the goal of rel. DBMSs Faloutsos CMU SCS 15-415 8 CMU SCS What is the goal of rel.
    [Show full text]
  • Selection, Projection 2. Cartesian Product, Join 3. Set Operatio
    169 Relational Algebra • After completing this chapter, you should be able to . enumerate and explain the operations of relational algebra (there is a core of 5 relational algebra operators), . write relational algebra queries of the type join–select–project, . discuss correctness and equivalence of given relational algebra queries. 170 Relational Algebra Overview 1. Introduction; Selection, Projection 2. Cartesian Product, Join 3. Set Operations 4. Outer Join 5. Formal Definitions, A Bit of Theory 171 Example Database (recap) STUDENTS RESULTS SID FIRST LAST EMAIL SID CAT ENO POINTS 101 Ann Smith ... 101 H 1 10 102 Michael Jones (null) 101 H 2 8 103 Richard Turner ... 101 M 1 12 104 Maria Brown ... 102 H 1 9 102 H 2 9 EXERCISES 102 M 1 10 CAT ENO TOPIC MAXPT 103 H 1 5 103 M 1 7 H 1 Rel.Alg. 10 H 2 SQL 10 M 1 SQL 14 172 Relational Algebra (1) • Relational algebra (RA) is a query language for the relational model with a solid theoretical foundation. • Relational algebra is not visible at the user interface level (not in any commercial RDBMS, at least). • However, almost any RDBMS uses RA to represent queries internally (for query optimization and execution). • Knowledge of relational algebra will help in understanding SQL and relational database systems in general. 173 Relational Algebra (2) • In mathematics, an algebra is a . set (the carrier), and . operations that are closed with respect to the set. • Example: (N, , + ) forms an algebra. {∗ } • In case of RA, . the carrier is the set of all finite relations. • We will get to know the operations of RA in the sequel (one such operation is, for example, ).
    [Show full text]
  • Anonymous and First Class Operators for Tutorial D
    Anonymous and First Class Operators for Tutorial D Dave Voorhis <[email protected]> Version 1.01 August 2012 Introduction This is an informal account of work-in-progress extensions to Date and Darwen's Tutorial D database language to support anonymous functions/procedures. Much of this work was inspired by discussions on The Third Manifesto e-mail forum1, and – except where noted – has been implemented and tested in Rel.2 The remainder of this introduction provides a brief, pragmatic, incomplete3, but hopefully relevant general overview of anonymous and first class functions. Readers familiar with anonymous and first class functions may wish to skip to the Operators in Tutorial D section. This document assumes familiarity with Tutorial D syntax. Anonymous Functions In languages that do not support anonymous functions – e.g., C, Pascal, SQL and Java – every function/procedure definition must be given a name. For example, a hypothetical procedural language of conventional design will almost undoubtedly allow a definition of a function named “plus” like this... function plus(x integer, y integer) returns integer { return x + y } ...and an invocation of that definition referencing it by its name, “plus”, like this: plus(2, 3) An anonymous function – also known as a lambda expression – is a function (or procedure) definition that does not have a name. A hypothetical procedural language that allows anonymous functions might permit a definition like this: function (x integer, y integer) returns integer { return x + y } Note the absence of any function name. In languages that support anonymous function definitions, they may appear wherever a function invocation would typically reference a function name.
    [Show full text]
  • Rel and Tutorial D Quickstart
    Rel is an open source desktop database management system from Dave Voorhis that implements Relational Expressions Relvars + Tutorial D Tutorial D, a relational database language designed by Chris Date and Hugh Darwen. // Return value of relvar S Tutorial D is not SQL. VAR myVariable REAL RELATION {x INT, y RATIONAL, z CHAR} KEY {x}; For more information, see https://reldb.org, http://thethirdmanifesto.com and S http://www.dcs.warwick.ac.uk/~hugh/TTM/Tutorial%20D%202016-09-22.pdf // Join S and P on common attributes Start Scalar Expressions Tuple Expressions S JOIN P INSERT myVariable RELATION { // Return tuples of S that match tuples in P, TUPLE {x 1, y 2.3, z 'zap'}, Launching: Download instructions are at 3 + 4 TUPLE {x 1, y 2.3, z 'zap'} // based on common attributes https://reldb.org/c/index.php/download/ Once 7 x 1 y 2.3 z zap TUPLE {x 2, y 3.4, z 'zot'}, downloaded, open the folder – or go to S MATCHING P Applications on macOS – and run the Rel 3.4 + 5.6 TUPLE {x 3, y 4.2, z 'zaz'} executable. 9.0 TUPLE {x 1, y 2.3, z 'zap'} JOIN TUPLE {p 1, q 4.3, r true} // Return tuples of S that do not match tuples in P, Rel command-line: In the upper-right hand x 1 y 2.3 z zap p 1 q 4.3 r true // based on common attributes }; corner of the Rel window, there are these three 3.4 > 5.6 S NOT MATCHING P false icons.
    [Show full text]
  • Relational Algebra
    Chapter 3 Relational Database Languages: Relational Algebra We first consider only query languages. Relational Algebra: Queries are expressions over operators and relation names. Relational Calculus: Queries are special formulas of first-order logic with free variables. SQL: Combination from algebra and calculus and additional constructs. Widely used DML for relational databases. QBE: Graphical query language. Deductive Databases: Queries are logical rules. 71 RELATIONAL DATABASE LANGUAGES: COMPARISON AND OUTLOOK Remark: • Relational Algebra and (safe) Relational Calculus have the same expressive power. For every expression of the algebra there is an equivalent expression in the calculus, and vice versa. • A query language is called relationally complete, if it is (at least) as expressive as the relational algebra. • These languages are compromises between efficiency and expressive power; they are not computationally complete (i.e., they cannot simulate a Turing Machine). • They can be embedded into host languages (e.g. C++ or Java) or extended (PL/SQL), resulting in full computational completeness. • Deductive Databases (Datalog) are more expressive than relational algebra and calculus. 72 3.1 Relational Algebra: Computations over Relations Operations on Tuples – Overview Slide Let µ Tup(X¯) where X¯ = A ,...,A . ∈ { 1 k} (Formal definition of µ see Slide 60) • For Y¯ X¯, the expression µ[Y¯ ] denotes the projection of µ to Y¯ . ∅⊂ ⊆ Result: µ[Y¯ ] Tup(Y¯ ) where µ[Y¯ ](A)= µ(A),A Y¯ . ∈ ∈ • A selection condition α (wrt. X¯) is an expression of the form AθB or Aθc, or cθA where A,B X¯, dom(A)= dom(B), c dom(A), and θ is a comparison operator on that ∈ ∈ domain like e.g.
    [Show full text]
  • Translating Between SQL and Tutorial D
    Translating between SQL and Tutorial D Ahmed Yusuf Almulla Dissertation Supervisor: Dr Nigel Stanger A dissertation submitted as a partial fulfilment for the degree of Bachelor of Applied Science with Honours in Software Engineering UNIVERSITY OF OTAGO Department of Applied Science Copyright © by Ahmed Almulla 2007 ii Acknowledgments I would like to take this opportunity to thank my supervisor Dr Nigel Stanger for the great support and guidance he provided me throughout the course of my dissertation. I would also like to appreciate the contribution of Dr Colin Aldridge in running the research methodology seminars that provided me with a great deal of useful knowledge. I thank Professor Martin Purvis for being the course coordinator of this valuable course and showing his support. I also thank my friend, Abdulrahman Shams, for the assistance he provided me in the implementation of my experiment which led to the successful completion of my dissertation. This work is dedicated to my family, friends and Software Engineering colleagues who stood beside me throughout the course of my dissertation and showed their support. Finally, my greatest gratitude goes to my dear parents who put their faith in me and supported me in my studies. iii Abstract The relational model of data has a strong influence on the database field and cannot be discarded for any future direction regarding the development of databases (Date and Darwen, 2007). Two relational database languages that are associated with this model are the Structured Query Language (SQL) and Tutorial D. The purpose of this dissertation is to translate between these two languages so that SQL clients can interoperate with a Tutorial D database via SQL.
    [Show full text]
  • 2.2 Relational Model (RM)
    2.2 Relational Model (RM) • Relational Model by Codd (1970): mathematical foundation: set theory, • only a single structural concept Relation, • entity/object types and relationship types are uniformly modeled by relation schemata. • properties of entities/objects and relationships are represented by attributes (in the relation schemata). • a relation schema consists of a name and a set of attributes, Continent: Name, Area • each attribute is associated with a domain that specifies the allowed values of the attribute. Often, attributes also can have a null value. Continent: Name: VARCHAR(25), Area: NUMBER • A (relational) database schema R is given by a (finite) set of (relation) schemata. Continent: ...; Country: ...; City: ...; encompasses: ... • for every relation, a set of (primary) key attributes is distinguished 44 2.2.1 Relations • A (database) state associates each relation schema to a relation. • elements of a relation are called tuples. Every tuple represents an entity or a relationship. (Name: Asia, area: 4.5E7) • relations are unordered. Columns are also unordered. Example: Continent Name Area VARCHAR(20) NUMBER Europe 9562489.6 Africa 3.02547e+07 Asia 4.50953e+07 America 3.9872e+07 Australia 8503474.56 45 Relations: Example Continent Country Name Area Name code Population Area ... Europe 9562489.6 Germany D 83536115 356910 Africa 3.02547e+07 Sweden S 8900954 449964 Asia 4.50953e+07 Canada CDN 28820671 9976140 America 3.9872e+07 Poland PL 38642565 312683 Australia 8503474.56 Bolivia BOL 1098580 La Paz .. .. .. .. encompasses Country Continent Percent • with referential integrity constraints VARCHAR(4) VARCHAR(20) NUMBER (to be explained later) R Europe 20 • references to keys R Asia 80 D Europe 100 ..
    [Show full text]
  • Employee (Person-Name, Street, City) Works (Person-Name, Company-Name, Salary) Company (Company-Name, City) Manages (Person-Name, Manager-Name)
    Exercises 31 employee (person-name, street, city) works (person-name, company-name, salary) company (company-name, city) manages (person-name, manager-name) Figure 3.39. Relational database for Exercises 3.5, 3.8 and 3.10. 3.4 In Chapter 2, we saw how to represent many-to-many, many-to-one, one-to- many, and one-to-one relationship sets. Explain how primary keys help us to represent such relationship sets in the relational model. Answer: Suppose the primary key of relation schema R is {Ai1 ,Ai2,..., Ain } and the primary key of relation schema S is {Bi1 ,Bi2,..., Bim }.Thenare- lationship between the 2 sets can be represented as a tuple (Ai1 ,Ai2,..., Ain Bi1 ,Bi2,..., Bim ). In a one-to-one relationship, each value on {Ai1 ,Ai2,..., Ain } will appear in exactly one tuple and likewise for {Bi1 ,Bi2,..., Bim }.Inamany- to-one relationship (e.g., many A -oneB), each value on {Ai1 ,Ai2,..., Ain } will appear once, and each value on {Bi1 ,Bi2,..., Bin } may appear many times. In a many-to-many relationship, values on both {Ai1 ,Ai2,..., Ain } and { Bi1 ,Bi2,..., Bim } will appear many times. However, in all the above cases {Ai1 ,Ai2,..., Ain , Bi1 ,Bi2,..., Bim } is a primary key, so no tuple on (Aj1 , ..., Ajn Bk1 , ..., Bkm ) will appear more than once. 3.5 Consider the relational database of Figure 3.39, where the primary keys are un- derlined. Give an expression in the relational algebra to express each of the fol- lowing queries: a. Find the names of all employees who work for First Bank Corporation.
    [Show full text]
  • Using Relational Databases in the Engineering Repository Systems
    USING RELATIONAL DATABASES IN THE ENGINEERING REPOSITORY SYSTEMS Erki Eessaar Department of Informatics, Tallinn University of Technology, Raja 15,12618 Tallinn, Estonia Email: [email protected] Keywords: Relational data model, Object-relational data model, Repository, Metamodeling. Abstract: Repository system can be built on top of the database management system (DBMS). DBMSs that use relational data model are usually not considered powerful enough for this purpose. In this paper, we analyze these claims and conclude that they are caused by the shortages of SQL standard and inadequate implementations of the relational model in the current DBMSs. Problems that are presented in the paper make usage of the DBMSs in the repository systems more difficult. This paper also explains that relational system that follows the rules of the Third Manifesto is suitable for creating repository system and presents possible design alternatives. 1 INTRODUCTION oriented programming languages. An example of an early attempt to combine relational and object technologies in one data model is ROSE (Hardwick "A repository is a shared database of information & Spooner, 1989) that is experimental data about the engineered artifacts." (Bernstein, 1998) These artifacts can be software engineering artifacts management system for the interactive engineering applications. Bernstein (2003) envisions that object- like models and patterns. Repository system contains relational systems are good platform for the model a repository manager and a repository (database) (Bernstein, 1998). Bernstein (1998) explains that management systems. ORIENT (Zhang et al., 2001) and SFB-501 Reuse Repository (Mahnke & Ritter, repository manager provides services for modeling, 2002) are examples of the repository systems that retrieving, and managing objects in the repository and therefore must offer functions of the Database use a commercial ORDBMS.
    [Show full text]
  • Database Management System
    1 DATAB ASE MANAGEMENT SYSTEM (DBMS) (R-13 Autonomous) Department of Computer Science & Engineering Malla Reddy College of Engineerings & Technology (Accredited by NBA with NAAC-A Grade, UGC-Autonomous, ISO Certified Institution) Maisammaguda, Near Kompally, Medchal Road, Sec’bad-500 100. 2 SYLLABUS (R15A0509) DATABASE MANAGEMENT SYSTEMS Objectives: To Understand the basic concepts and the applications of database systems To Master the basics of SQL and construct queries using SQL To understand the relational database design principles To become familiar with the basic issues of transaction processing and concurrency control To become familiar with database storage structures and access techniques UNIT I: Data base System Applications, Purpose of Database Systems, View of Data – Data Abstraction – Instances and Schemas – data Models – the ER Model – Relational Model – Other Models – Database Languages – DDL – DML – database Access for applications Programs – data base Users and Administrator – Transaction Management – data base Architecture – Storage Manager – the Query Processor Data base design and ER diagrams – ER Model - Entities, Attributes and Entity sets – Relationships and Relationship sets – ER Design Issues – Concept Design – Conceptual Design for University Enterprise. Introduction to the Relational Model – Structure – Database Schema, Keys – Schema Diagrams UNIT II: Relational Query Languages, Relational Operations. Relational Algebra – Selection and projection set operations – renaming – Joins – Division – Examples of Algebra overviews – Relational calculus – Tuple relational Calculus – Domain relational calculus. Overview of the SQL Query Language – Basic Structure of SQL Queries, Set Operations, Aggregate Functions – GROUPBY – HAVING, Nested Sub queries, Views, Triggers. UNIT III: Normalization – Introduction, Non loss decomposition and functional dependencies, First, Second, and third normal forms – dependency preservation, Boyee/Codd normal form.
    [Show full text]
  • Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, Aspectj, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 Sultan S
    Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 Sultan S. Al-Qahtani Luis F. Guzman Concordia University Concordia University Montreal, Quebec, Canada Montreal, Quebec, Canada [email protected] [email protected] Rafik Arif Adrien Tevoedjre Concordia University Concordia University Montreal, Quebec, Canada Montreal, Quebec, Canada [email protected] [email protected] Pawel Pietrzynski Concordia University Montreal, Quebec, Canada [email protected] Abstract Comparison of programming languages is a common topic of discussion among software engineers. Few languages ever become sufficiently popular that they are used by more than a few people or find their niche in research or education; but professional programmers can easily use dozens of different languages during their career. Multiple programming languages are designed, specified, and implemented every year in order to keep up with the changing programming paradigms, hardware evolution, etc. In this paper we present a comparative study between ten programming languages: Haskell, Java, Perl, C++, AspectJ, COBOL, Ruby, PHP, Bash Scripts, and Scheme; with respect of the following criteria: Secure programming practices, web applications development, web services design and composition, object oriented-based abstraction, reflection, aspect-orientation, functional programming, declarative programming, batch scripting, and user interface prototype design. 1. Introduction The first high-level programming languages were designed during the 1950s. Ever since then, programming languages have been a fascinating and productive area of study [43]. Thousands of different programming languages have been created, mainly in the computer field, with many more being created every year; they are designed, specified, and implemented for the purpose of being up to date with the evolving programming paradigms (e.g.
    [Show full text]