Rel and Tutorial D Quickstart

Total Page:16

File Type:pdf, Size:1020Kb

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. TUPLE {x 1, y 2.3, z 'zap'} MINUS TUPLE {p 1, q 4.3, r true} The left icon is for the main Rel user interface, // Join S and P on common attributes; x 1 y 2.3 z zap myVariable the middle icon is the visual query editor, and 1.2 < 3.4 // do not include common attributes S COMPOSE P the right icon is the command-line. true x y z Loading a database script: Go to the command- TUPLE {x 1, y 2.3, z 'zap'} MINUS TUPLE {x 1, y 2.3} // Return tuples of S where STATUS is Greater than 10 line, select the Load File icon, load the file. Press "a" || "bcd" z zap INTEGER RATIONAL CHARACTER F5 to execute. abcd S WHERE STATUS > 10 Evaluating expressions and statements: Type 1 2.3 zap TUPLE {x 1, y 2.3, z 'zap'} UNION TUPLE {x 1, y 2.3} the expression at the command-line and press 'a' || 'bcd' // Return tuples of S where SNAME equals F5. Statements always end with a semicolon; abcd x 1 y 2.3 z zap // NAME(‘Smith’). NAME is a user-defined type. 2 3.4 zot expressions do not. S WHERE SNAME = NAME('Smith') SIN(0.25) TUPLE {x 1, y 2.3, z 'zap'} UNION TUPLE {x 1, y 2.3, r 4.5} 3 4.2 zaz NOTE: To run the examples on this page, download and unzip // Return UNION of tuples of S where SNAME equals Rel_ExamplesAndUtilities_3.xxx.zip, load and execute database 0.24740395925452294 x 1 y 2.3 z zap r 4.5 script DateBookSampleRelvars.rel // NAME(‘Smith’) with tuples // of S where STATUS equals 30. (S WHERE SNAME = NAME('Smith')) UNION (S WHERE STATUS = UPDATE myVariable WHERE x > 2: {y := y + 4.2, z := z || 'gurgle'}; User-defined operators and types Flow control 30) // This is a user-defined operator // IF ... THEN statement // Return tuples of S with S#, SNAME and STATUS IF RANDOM() > 0.5 THEN // attributes converted to a relation-valued attribute X. myVariable OPERATOR myOperator (x INTEGER, y INTEGER) RETURNS INTEGER; WRITELN "heads"; S GROUP {S#, SNAME, STATUS} AS X ELSE x y z RETURN x + y * 2; WRITELN "tails"; // Return tuples of S with S#, SNAME and STATUS INTEGER RATIONAL CHARACTER END OPERATOR; END IF; // attributes converted to a tuple-valued attribute X. S WRAP {S#, SNAME, STATUS} AS X // IF ... THEN expression 1 2.3 zap WRITELN // Get the sinGle tuple from S WHERE STATUS = 10. IF RANDOM() > 0.5 THEN "heads" 2 3.4 zot // Evaluate // Error if there isn’t exactly 1 tuple. ELSE "tails" END IF; myOperator(3, 4) * 2 TUPLE FROM (S WHERE STATUS = 10) 3 8.4 zazgurgle // CASE ... WHEN statement VAR x INIT(RANDOM()); // Get the SNAME attribute from the tuple from // S WHERE STATUS = 10. Error if there isn’t 1. // Execute CASE; WHEN x > 0.5 THEN WRITELN "heads"; SNAME FROM TUPLE FROM (S WHERE STATUS = 10) DELETE myVariable WHERE x = 1; CALL myOperator(3, 4); WHEN x < 0.5 THEN WRITELN "tails"; ELSE WRITELN "on edge"; // Project S on SNAME and STATUS. END CASE; S {SNAME, STATUS} myVariable // Drop operator // CASE ... WHEN expression x y z DROP OPERATOR myOperator(INTEGER, INTEGER); VAR y INIT(RANDOM()); // Return value of S with SNAME renamed to NAME; WRITELN CASE // STATUS renamed to STAT. INTEGER RATIONAL CHARACTER WHEN y > 0.5 THEN "heads" S RENAME {SNAME AS NAME, STATUS AS STAT} WHEN y < 0.5 THEN "tails" ELSE "on edge" 2 3.4 zot // User-defined type // Return the scalar sum of the STATUS attribute of S. END CASE; TYPE myNewTYPE POSSREP {x INT, y CHAR}; SUM(S, STATUS) 3 8.4 zazgurgle // WITH expression WRITELN WITH ( // Return the scalar sum of an expression. SUM(S, STATUS * 2) // Value of type myNewTYPE v := 2.0 * SIN(RANDOM()), q := 3.0 * TAN(RANDOM()) // Describe all relvars in the database myNewTYPE(2, 'zot') ): v * v * q + q; // Obtain total of STATUS attribute Grouped by CITY SUMMARIZE S BY {CITY}: {TOTAL := SUM(STATUS)} sys.Catalog // DO loop VAR i INT; // Obtain total of STATUS attribute, and count of tuples, // Relvar using user-defined type DO i := 1 TO 10; // Grouped by CITY // Get the names of all relvars in the database VAR myNewRelvar REAL RELATION {x INT, y myNewTYPE} KEY {x}; WRITELN i; SUMMARIZE S BY {CITY}: END DO; {N := COUNT(), TOTAL := SUM(STATUS)} sys.Catalog {Name} // WHILE loop // Obtain total of STATUS attribute times two, VAR j INIT(10); // and count of tuples, Grouped by CITY WHILE j > 0; SUMMARIZE S BY {CITY}: // Get all the operators in the database WRITELN j; j := j - 1; {N := COUNT(), TOTAL := SUM(STATUS * 2)} sys.Operators END WHILE; // Calculate new attribute values from expressions. sys.OperatorsBuiltin EXTEND S: {BIGSTATUS := STATUS * 10, R := 'Test'}.
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]
  • 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: • .
    [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]
  • 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]