Relational and Object-Relational Database Management Systems As Platforms for Managing Software Engineering Artifacts

Total Page:16

File Type:pdf, Size:1020Kb

Relational and Object-Relational Database Management Systems As Platforms for Managing Software Engineering Artifacts THESIS ON INFORMATICS AND SYSTEM ENGINEERING C32 Relational and Object-Relational Database Management Systems as Platforms for Managing Software Engineering Artifacts ERKI EESSAAR TUT PRESS Faculty of Information Technology Department of Informatics TALLINN UNIVERSITY OF TECHNOLOGY Dissertation was accepted for the commencement of the degree of Doctor of Philosophy in Engineering on November 15, 2006. Supervisor: Prof. Rein Kuusik, Faculty of Information Technology Opponents: Prof. Bernhard Thalheim, Christian-Albrechts-University Kiel, Computer Science Institute, Germany Prof. Jüri Kiho, University of Tartu, Estonia Commencement: December 18, 2006 Declaration: Hereby I declare that this doctoral thesis, my original investigation and achievement, submitted for the doctoral degree at Tallinn University of Technology has not been submitted for any degree or examination. /Erki Eessaar/ Copyright: Erki Eessaar, 2006 ISSN 1406-4731 ISBN 9985-59-671-4 Table of Contents INTRODUCTION........................................................................................ 6 OBJECTIVES ................................................................................................ 7 LIMITATIONS ............................................................................................ 10 OUTLINE OF THE DISSERTATION .............................................................. 11 ACKNOWLEDGEMENTS ............................................................................. 13 LIST OF ABBREVIATIONS.................................................................... 15 1 DATA MODELS ................................................................................. 16 1.1 IMPORTANT CONCEPTS OF DATA MODELS ................................... 16 1.2 COMPARISON METHODS OF DATA MODELS .................................. 19 1.3 COMPARISON OF THE DATA MODELS ............................................ 21 1.3.1 Proposed Method for Comparing Data Models.................... 24 1.3.2 Comparison of Data Types.................................................... 27 1.3.2.1 Discussion......................................................................... 32 1.3.3 Comparison of Data Structures............................................. 35 1.3.3.1 Discussion......................................................................... 39 1.3.4 Comparison of Data Integrity Rules...................................... 42 1.3.4.1 Discussion......................................................................... 44 1.3.5 Comparison of Data Operators............................................. 46 1.3.5.1 Discussion......................................................................... 51 1.3.6 Observations.......................................................................... 53 1.3.7 Metrics Values....................................................................... 55 1.3.8 Orthogonality Principle in Language Design ....................... 57 1.4 COMPARISON WITH THE EXISTING SATE OF THE ART ................... 59 1.4.1 Object-Oriented Database Metamodel.................................. 59 1.4.2 CIM Database Model ............................................................ 60 1.4.3 Common Warehouse Metamodel........................................... 60 1.4.4 SQL:2003 Ontology............................................................... 61 1.4.5 SQL Definition Schema ......................................................... 66 1.5 SUMMARY ...................................................................................... 67 2 DATABASE MANAGEMENT SYSTEMS IN EXISTING SOFTWARE ENGINEERING SYSTEMS................................................... 69 2.1 REQUIREMENTS TO THE REPOSITORY SYSTEMS ............................ 72 2.2 EXISTING SOFTWARE ENGINEERING SYSTEMS ............................. 74 2.2.1 Systems that do not Use a DBMS .......................................... 75 2.2.2 Heterogeneous Systems ......................................................... 77 2.2.3 Systems that Use Only an Engineering DBMS...................... 79 2.2.4 Systems that Use Only a General-purpose DBMS ................ 81 2.2.4.1 Systems that Use a RDBMS ............................................. 81 2.2.4.2 Systems that Use an OODBMS ........................................ 84 2.2.4.3 Systems that Use an ORDBMS ........................................ 84 3 2.3 PROBLEMS OF USING THE RELATIONAL MODEL AND RDBMS SQL S IN ENGINEERING SYSTEMS ............................................................................ 86 2.4 SUMMARY ...................................................................................... 90 3 REPOSITORY DATABASE DESIGN.............................................. 92 3.1 DESIGN ALTERNATIVES OF DATABASE SCHEMA OF A SOFTWARE ENGINEERING SYSTEM .................................................................................. 92 3.1.1 Encapsulated Artifact Types.................................................. 93 3.1.2 Non-encapsulated Artifact Element Types ............................ 95 3.1.3 Encapsulated Artifact Element Types.................................... 96 3.1.4 Universal Data Model........................................................... 97 3.2 CHECKING OF THE WELL -FORMEDNESS RULES .......................... 107 3.2.1 Ignore All Well-formedness Rules....................................... 108 3.2.2 Automatically Resolve Constraint Violations as they Arrive 108 3.2.3 Disallow an Operation and Inform a User.......................... 108 3.2.3.1 Example with SimpleM .................................................. 109 3.2.3.2 Example with Use Cases................................................. 110 3.2.4 Allow Everything Initially and Search Errors Later ........... 111 3.2.4.1 Integrated Approach with Versioning............................. 112 3.3 PRESERVING THE SEMANTICS OF RELATIONSHIPS IN A DATABASE 116 3.3.1 Generalization Relationships .............................................. 116 3.3.2 Whole-Part Relationships.................................................... 117 3.3.2.1 Related Works................................................................. 117 3.3.2.2 Possible Designs ............................................................. 118 3.3.2.3 Choosing Between the Designs....................................... 120 3.3.3 Advantages of Attributes with Complex Types in Real Relvars 126 3.3.4 Disadvantages of Attributes with Complex Types in Real Relvars 128 3.4 ADDITIONAL GUIDELINES FOR DATABASE DESIGN .................... 128 3.4.1 The Principle of Orthogonal Design ................................... 129 3.4.2 The Extended Principle of Orthogonal Database Design... 135 3.4.2.1 Discussion and Examples ............................................... 136 3.4.3 Heuristic Rules for Reducing Data Redundancy within the Value of One Real Relvar........................................................................ 138 3.4.3.1 Discussion and Examples ............................................... 139 3.4.4 An Example about the Suitability of Relation-Valued Attribute 142 3.5 VIEW TO ORDBMS SQL S .............................................................. 145 3.5.1 SQL-specific Solutions ........................................................ 145 3.5.2 Usability of the Designs and Guidelines in ORDBMS SQL s .. 145 3.6 SUMMARY .................................................................................... 154 4 4 REPOSITORY SYSTEM WITH A FIXED DATABASE SCHEMA 156 4.1 RELATED WORKS ........................................................................ 158 4.2 DESCRIPTION OF THE MODELING LANGUAGE ............................. 160 4.3 QUERIES ....................................................................................... 164 4.3.1 Consistency and Completeness Checks............................... 165 4.4 DISCUSSION AND COMPARISONS ................................................. 167 4.5 SUMMARY .................................................................................... 171 CONCLUSIONS ...................................................................................... 172 SUMMARY OF CONTRIBUTIONS .............................................................. 172 DIRECTIONS FOR FURTHER RESEARCH .................................................. 178 KOKKUVÕTE ......................................................................................... 181 REFERENCES......................................................................................... 185 APPENDIX A: SOME PROPERTIES OF EXISTING SOFTWARE ENGINEERING SYSTEMS THAT USE THE HELP OF A DBMS ....... 205 APPENDIX B: SOME SECONDARY CHARACTERISTICS OF WHOLE-PART RELATIONSHIPS ........................................................... 207 APPENDIX C: COMPARISON OF SOME SYSTEMS THAT RECORD MODELS IN A DATABASE ..................................................... 208 APPENDIX D: THE LOCATION OF PROTOTYPE SYSTEM ........ 210 APPENDIX E: CURRICULUM VITAE ............................................... 211 APPENDIX F: ELULOOKIRJELDUS (CV IN ESTONIAN)............. 214 5 INTRODUCTION The main areas of this study are relational and object-relational data models and their suitability in the systems that help to manage software engineering artifacts. The concept "data model" has two different meanings (it is "construct overload"): • Meaning 1 : "An abstract, self-contained, logical definition of the data structures, data operators, and so forth, that together make up the abstract machine with which users interact." (Date, 2003, p.15,
Recommended publications
  • Further Normalization of the Data Base Relational Model
    FURTHER NORMALIZATION OF THE DATA BASE RELATIONAL MODEL E. F. Codd IBM Research Laboratory San Jose, California ABSTRACT: In an earlier paper, the author proposed a relational model of data as a basis for protecting users of formatted data systems from the potentially disruptive changes in data representation caused by growth in the data base and changes in traffic. A first normal form for the time-varying collection of relations was introduced. In this paper, second and third normal forms are defined with the objective of making the collection of relations easier to understand and control, simpler to operate upon, and more informative to the casual user. The question "Can application programs be kept in a viable state when data base relations are restructured?" is discussed briefly and it is conjectured that third normal form will significantly extend the life expectancy of appli- cation programs. Fu909umxk7) August 31,197l Information technolow (IR, Documentetion, etc.) 1. 1. Introduction 1.1 Objectives of Normalization In an earlier paper [l] the author proposed a relational model of data as a basis for protecting users of formatted data systems from the potentially disruptive changes in data representation caused by growth in the variety of data types in the data base and by statistical changes in the transaction or request traffic. Using this model, both the appli- cation programmer and the interactive user view the data base as a time-varying collection of normalized relations of assorted degrees. Definitions of these terms and of the basic relational operations of projection and natural join are given in the Appendix.
    [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 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]
  • Datatypes (Pdf Format)
    Basic Scripting, Syntax, and Data Types in Python Mteor 227 – Fall 2020 Basic Shell Scripting/Programming with Python • Shell: a user interface for access to an operating system’s services. – The outer layer between the user and the operating system. • The first line in your program needs to be: #!/usr/bin/python • This line tells the computer what python interpreter to use. Comments • Comments in Python are indicated with a pound sign, #. • Any text following a # and the end of the line is ignored by the interpreter. • For multiple-line comments, a # must be used at the beginning of each line. Continuation Line • The \ character at the end of a line of Python code signifies that the next line is a continuation of the current line. Variable Names and Assignments • Valid characters for variable, function, module, and object names are any letter or number. The underscore character can also be used. • Numbers cannot be used as the first character. • The underscore should not be used as either the first or last character, unless you know what you are doing. – There are special rules concerning leading and trailing underscore characters. Variable Names and Assignments • Python is case sensitive! Capitalization matters. – The variable f is not the same as the variable F. • Python supports parallel assignment >>> a, b = 5, 'hi' >>> a 5 >>> b 'hi' Data Types • Examples of data types are integers, floating-point numbers, complex numbers, strings, etc. • Python uses dynamic typing, which means that the variable type is determined by its input. – The same variable name can be used as an integer at one point, and then if a string is assigned to it, it then becomes a string or character variable.
    [Show full text]
  • Sixth Normal Form
    3 I January 2015 www.ijraset.com Volume 3 Issue I, January 2015 ISSN: 2321-9653 International Journal for Research in Applied Science & Engineering Technology (IJRASET) Sixth Normal Form Neha1, Sanjeev Kumar2 1M.Tech, 2Assistant Professor, Department of CSE, Shri Balwant College of Engineering &Technology, DCRUST University Abstract – Sixth Normal Form (6NF) is a term used in relational database theory by Christopher Date to describe databases which decompose relational variables to irreducible elements. While this form may be unimportant for non-temporal data, it is certainly important when maintaining data containing temporal variables of a point-in-time or interval nature. With the advent of Data Warehousing 2.0 (DW 2.0), there is now an increased emphasis on using fully-temporalized databases in the context of data warehousing, in particular with next generation approaches such as Anchor Modeling . In this paper, we will explore the concepts of temporal data, 6NF conceptual database models, and their relationship with DW 2.0. Further, we will also evaluate Anchor Modeling as a conceptual design method in which to capture temporal data. Using these concepts, we will indicate a path forward for evaluating a possible translation of 6NF-compliant data into an eXtensible Markup Language (XML) Schema for the purpose of describing and presenting such data to disparate systems in a structured format suitable for data exchange. Keywords :, 6NF,SQL,DKNF,XML,Semantic data change, Valid Time, Transaction Time, DFM I. INTRODUCTION Normalization is the process of restructuring the logical data model of a database to eliminate redundancy, organize data efficiently and reduce repeating data and to reduce the potential for anomalies during data operations.
    [Show full text]
  • Objects and Classes in Python Documentation Release 0.1
    Objects and classes in Python Documentation Release 0.1 Jonathan Fine Sep 27, 2017 Contents 1 Decorators 2 1.1 The decorator syntax.........................................2 1.2 Bound methods............................................3 1.3 staticmethod() .........................................3 1.4 classmethod() ..........................................3 1.5 The call() decorator.......................................4 1.6 Nesting decorators..........................................4 1.7 Class decorators before Python 2.6.................................5 2 Constructing classes 6 2.1 The empty class...........................................6 3 dict_from_class() 8 3.1 The __dict__ of the empty class...................................8 3.2 Is the doc-string part of the body?..................................9 3.3 Definition of dict_from_class() ...............................9 4 property_from_class() 10 4.1 About properties........................................... 10 4.2 Definition of property_from_class() ............................ 11 4.3 Using property_from_class() ................................ 11 4.4 Unwanted keys............................................ 11 5 Deconstructing classes 13 6 type(name, bases, dict) 14 6.1 Constructing the empty class..................................... 14 6.2 Constructing any class........................................ 15 6.3 Specifying __doc__, __name__ and __module__.......................... 15 7 Subclassing int 16 7.1 Mutable and immutable types.................................... 16 7.2
    [Show full text]
  • Typescript Language Specification
    TypeScript Language Specification Version 1.8 January, 2016 Microsoft is making this Specification available under the Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") as of October 1, 2012. The OWF 1.0 is available at http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0. TypeScript is a trademark of Microsoft Corporation. Table of Contents 1 Introduction ................................................................................................................................................................................... 1 1.1 Ambient Declarations ..................................................................................................................................................... 3 1.2 Function Types .................................................................................................................................................................. 3 1.3 Object Types ...................................................................................................................................................................... 4 1.4 Structural Subtyping ....................................................................................................................................................... 6 1.5 Contextual Typing ............................................................................................................................................................ 7 1.6 Classes .................................................................................................................................................................................
    [Show full text]
  • Middleware in Action 2007
    Technology Assessment from Ken North Computing, LLC Middleware in Action Industrial Strength Data Access May 2007 Middleware in Action: Industrial Strength Data Access Table of Contents 1.0 Introduction ............................................................................................................. 2 Mature Technology .........................................................................................................3 Scalability, Interoperability, High Availability ...................................................................5 Components, XML and Services-Oriented Architecture..................................................6 Best-of-Breed Middleware...............................................................................................7 Pay Now or Pay Later .....................................................................................................7 2.0 Architectures for Distributed Computing.................................................................. 8 2.1 Leveraging Infrastructure ........................................................................................ 8 2.2 Multi-Tier, N-Tier Architecture ................................................................................. 9 2.3 Persistence, Client-Server Databases, Distributed Data ....................................... 10 Client-Server SQL Processing ......................................................................................10 Client Libraries ..............................................................................................................
    [Show full text]
  • Resume of Dr. Michael J. Bisconti
    Table of Contents This file contains, in order: Time Savers Experience Matrix Resume _________________________ 1 Time Savers There are a number of things we can do to save everyone’s time. In addition to resume information there are a number of common questions that employers and recruiters have. Here is an FAQ that addresses these questions. (We may expand this FAQ over time.) Frequently Asked Questions 1099 Multiple Interviewers Severance Pay Contract End Date Multiple Interviews Technical Exam Contract Job Need/Skill Assessment Interview Temporary Vs. Permanent Contract Rate Payment Due Dates U.S. Citizenship Drug Testing Permanent Job W2 Face-to-face Interview Phone Interview Word Resume Job Hunt Progress Salary Are you a U.S. citizen? Yes. Do you have a Word resume? Yes, and I also have an Adobe PDF resume. Do you prefer temporary (contract) or permanent employment? Neither, since, in the end, they are equivalent. Will you take a drug test? 13 drug tests taken and passed. Do you work 1099? Yes, but I give W2 payers preference. Do you work W2? Yes, and I work 1099 as well but I give W2 payers preference. How is your job search going? See 1.2 Job Hunt Progress. What contract rate do you expect? $65 to $85/hr. W2 and see the 2.5 Quick Rates Guide. What salary do you expect? 120k to 130k/yr. and see the 2.5 Quick Rates Guide. When do you expect to be paid? Weekly or biweekly and weekly payers will be given preference. Will you do a face-to-face interview? Yes, but I prefer a Skype or equivalent interview because gas is so expensive and time is so valuable.
    [Show full text]
  • A System of Constructor Classes: Overloading and Implicit Higher-Order Polymorphism
    A system of constructor classes: overloading and implicit higher-order polymorphism Mark P. Jones Yale University, Department of Computer Science, P.O. Box 2158 Yale Station, New Haven, CT 06520-2158. [email protected] Abstract range of other data types, as illustrated by the following examples: This paper describes a flexible type system which combines overloading and higher-order polymorphism in an implicitly data Tree a = Leaf a | Tree a :ˆ: Tree a typed language using a system of constructor classes – a mapTree :: (a → b) → (Tree a → Tree b) natural generalization of type classes in Haskell. mapTree f (Leaf x) = Leaf (f x) We present a wide range of examples which demonstrate mapTree f (l :ˆ: r) = mapTree f l :ˆ: mapTree f r the usefulness of such a system. In particular, we show how data Opt a = Just a | Nothing constructor classes can be used to support the use of monads mapOpt :: (a → b) → (Opt a → Opt b) in a functional language. mapOpt f (Just x) = Just (f x) The underlying type system permits higher-order polymor- mapOpt f Nothing = Nothing phism but retains many of many of the attractive features that have made the use of Hindley/Milner type systems so Each of these functions has a similar type to that of the popular. In particular, there is an effective algorithm which original map and also satisfies the functor laws given above. can be used to calculate principal types without the need for With this in mind, it seems a shame that we have to use explicit type or kind annotations.
    [Show full text]
  • LINGI2172 Databases 2013-2014
    Université Catholique de Louvain - DESCRIPTIF DE COURS 2013-2014 - LINGI2172 LINGI2172 Databases 2013-2014 6.0 crédits 30.0 h + 30.0 h 2q Enseignants: Lambeau Bernard ; Langue Français d'enseignement: Lieu du cours Louvain-la-Neuve Ressources en ligne: > http://icampus.uclouvain.be/claroline/course/index.php?cid=lingi2172 Préalables : Basic knowledge of database management, good abilities in programming. Thèmes abordés : * Data Base Management Systems (objectives, requirements, architecture). * The Relational data model (formal theory, first-order logic, constraints). * Conceptual models (entity-relationship, object role modeling). * Logical database design (normal forms & mp; normalization, ER-To-Relational) * Physical database design and storage (tables and keys, indexes, file structures). * Querying databases (Relational Algebra, Relational Calculus, Tutorial D, SQL) * ACID properties (Atomicity, Consistency, Isolation, Durability), Concurrency Control, Recovery techniques. * Programming database applications (JDBC, Database Cursors, Object-Relational Mapping, Relations as First-class Citizen). * Recent or more advanced trends in the database field (object-oriented databases, Big Data, NoSQL, NewSQL) Acquis Students completing this course successfully will be able to : * Explain the scenarios in which using a database is more convenient than programming with data files; d'apprentissage * Explain the characteristics of the database approach, where they come from and contrast them with current trends in the database field-- Identify and describe the main functions of a database management system; * Categorize conceptual, logical and physical data models based on the concepts they provide to describe the database structure; * Understand the main principles and mathematical theory of the relational approach to database management; * Design databases using a systematic approach, from a conceptual model through a logical level (i.e., a relational schema) into a physical model (i.e., tables and indexes); * Use SQL (DDL) to implement a relational database schema.
    [Show full text]
  • Csci 658-01: Software Language Engineering Python 3 Reflexive
    CSci 658-01: Software Language Engineering Python 3 Reflexive Metaprogramming Chapter 3 H. Conrad Cunningham 4 May 2018 Contents 3 Decorators and Metaclasses 2 3.1 Basic Function-Level Debugging . .2 3.1.1 Motivating example . .2 3.1.2 Abstraction Principle, staying DRY . .3 3.1.3 Function decorators . .3 3.1.4 Constructing a debug decorator . .4 3.1.5 Using the debug decorator . .6 3.1.6 Case study review . .7 3.1.7 Variations . .7 3.1.7.1 Logging . .7 3.1.7.2 Optional disable . .8 3.2 Extended Function-Level Debugging . .8 3.2.1 Motivating example . .8 3.2.2 Decorators with arguments . .9 3.2.3 Prefix decorator . .9 3.2.4 Reformulated prefix decorator . 10 3.3 Class-Level Debugging . 12 3.3.1 Motivating example . 12 3.3.2 Class-level debugger . 12 3.3.3 Variation: Attribute access debugging . 14 3.4 Class Hierarchy Debugging . 16 3.4.1 Motivating example . 16 3.4.2 Review of objects and types . 17 3.4.3 Class definition process . 18 3.4.4 Changing the metaclass . 20 3.4.5 Debugging using a metaclass . 21 3.4.6 Why metaclasses? . 22 3.5 Chapter Summary . 23 1 3.6 Exercises . 23 3.7 Acknowledgements . 23 3.8 References . 24 3.9 Terms and Concepts . 24 Copyright (C) 2018, H. Conrad Cunningham Professor of Computer and Information Science University of Mississippi 211 Weir Hall P.O. Box 1848 University, MS 38677 (662) 915-5358 Note: This chapter adapts David Beazley’s debugly example presentation from his Python 3 Metaprogramming tutorial at PyCon’2013 [Beazley 2013a].
    [Show full text]
  • The Use of UML for Software Requirements Expression and Management
    The Use of UML for Software Requirements Expression and Management Alex Murray Ken Clark Jet Propulsion Laboratory Jet Propulsion Laboratory California Institute of Technology California Institute of Technology Pasadena, CA 91109 Pasadena, CA 91109 818-354-0111 818-393-6258 [email protected] [email protected] Abstract— It is common practice to write English-language 1. INTRODUCTION ”shall” statements to embody detailed software requirements in aerospace software applications. This paper explores the This work is being performed as part of the engineering of use of the UML language as a replacement for the English the flight software for the Laser Ranging Interferometer (LRI) language for this purpose. Among the advantages offered by the of the Gravity Recovery and Climate Experiment (GRACE) Unified Modeling Language (UML) is a high degree of clarity Follow-On (F-O) mission. However, rather than use the real and precision in the expression of domain concepts as well as project’s model to illustrate our approach in this paper, we architecture and design. Can this quality of UML be exploited have developed a separate, ”toy” model for use here, because for the definition of software requirements? this makes it easier to avoid getting bogged down in project details, and instead to focus on the technical approach to While expressing logical behavior, interface characteristics, requirements expression and management that is the subject timeliness constraints, and other constraints on software using UML is commonly done and relatively straight-forward, achiev- of this paper. ing the additional aspects of the expression and management of software requirements that stakeholders expect, especially There is one exception to this choice: we will describe our traceability, is far less so.
    [Show full text]