Migration of MS Access Databases to Mendix Platform Schema Migration and Foreign Key Recovery
|
|
- Curtis Simpson
- 7 years ago
- Views:
Transcription
1 Migration of MS Access Databases to Mendix Platform Schema Migration and Foreign Key Recovery Theodora Boudale September 28, 2014, 52 pages Supervisor: Host organisation: Internship Supervisor: Tijs van der Storm Mendix Technology BV Jouke Waleson Universiteit van Amsterdam Faculteit der Natuurwetenschappen, Wiskunde en Informatica Master Software Engineering
2 Contents Abstract 2 1 Introduction Background and Context Problem Description Research Questions Outline Problem Analysis Schema Migration Data Migration Queries Migration Overview of our approach Access2Mendix: Access Schema Migration Solution: Schema Mappings Implementation Evaluation Foreign Key Discovery Approach: Inclusion Dependencies Implementation Evaluation Discussion Schema Migration Foreign Key Recovery Queries Migration Related Work 35 7 Conclusion and Future Work Summary and Conclusion Future Work Bibliography 39 Appendices 41 A Access Field & Table Properties 42 B Access Expression Language - Mendix Expressions 47 C Access SQL - Mendix XPath Operators 49 D Access SQL - Mendix OQL Predicates & Operators 51 1
3 Abstract This thesis is concerned with the migration of Microsoft Access databases to Mendix Platform. We investigate similarities and differences between the data models of the two systems, discuss issues in regards to data migration and also examine possible options for migrating database queries. A tool was implemented for the automated migration of an MS Access schema to Mendix Domain Model and we present its possibilities and limitations. Additionally, since many real-world databases lack an explicit definition of foreign key relationships, we implemented a tool for discovering those constraints. Our approach was to examine the data for inclusion dependencies, and our results show that these constraints are successfully retrieved. However, a big number of false positives is also discovered in databases that make extended use of Autonumber fields. 2
4 Chapter 1 Introduction 1.1 Background and Context Legacy information systems have an important role within many organizations. They usually operate daily supporting important business processes. They are also the source of valuable business information, since many of them represent a long-term investment of a company. However, these systems often cause problems to their host organizations. Some of those systems may be poorly designed or become complex with time. As a result, maintenance becomes a very time-consuming and expensive task. Adding new functionality or fixing a bug may require a significant amount of time and result in making the program more complex. Lack of documentation can make this task even more difficult. Additionally, skill shortage for obsolete technologies, for example COBOL, makes it difficult for companies to find experts in supporting some legacy systems [HCHH08]. For these reasons many organizations choose to migrate from one platform to another or one language to another. There are several examples of software migration projects in literature, for example converting from one language to another, converting to a newer version of a language, or migrating to a different type of database [AGA + 06]. A software migration project requires the investigation of a major issue: what can be migrated from the source system to the target one. A mapping between the components of the two systems needs to be determined. These components may have different semantics and a major challenge here is the resolution of this semantic gap. As Andrade et al. note [AGA + 06], the width of this gap decides the feasibility and complexity of such a conversion. The wider the gap, the less feasible, more complex and less automated the migration is [AGA + 06]. In migration projects one may also have to deal with underspecified data sources. Information about the database schema might be missing, and there might be no documentation to aid in its recovery. For instance, many relational databases lack an explicit definition of Foreign Key Relationships. The recovery of such constraints is an interesting challenge and a necessary step for a successful migration. 1.2 Problem Description Mendix is a company based in Rotterdam that offers a Model-Driven Development (MDD) Tool for developing web and mobile applications. MDD tools aim to separate the business logic of a program from its implementation technology [MRA05]. They allow developers to work on a higher level of 3
5 abstraction by creating models to capture a program s structure and behavior. These models are consequently used in order to automatically generate third generation language code [MRA05]. Many customers of Mendix have applications built with Microsoft Access and want to migrate them to Mendix Platform. Mendix wants to offer their customers a tool that can perform an automated migration of MS Access applications to their platform. Additionally, many of those customers applications do not have Foreign Key constraints explicitly defined. The automated discovery of such constraints would be a big aid in correctly migrating the Relationships of MS Access schema to Mendix Overview of Platforms Microsoft Access is a 4GL application design and development tool. It combines the Microsoft Jet database engine with software development tools, and can be used for the development of desktop and web applications. A MS Access application consists of the Database, the User Interface, and the Application Code. In Table 1.1 we present the main elements of a MS Access application from a developer s viewpoint, categorized along these three dimensions. Database Table: A set of data elements that is organized in rows and columns. Query: Queries are used in order to retrieve or operate on data. Form: An object that is used to create the user interface for an application. User Interface Application Code Report: An object that is used to display or summarize data, usually formatted for printing. Macro: A script for performing a task. It allows automation of tasks and adds functionality to forms, reports and controls. Module: A collection of Visual Basic declarations, statements and procedures, stored as one named unit. Table 1.1: Elements of a MS Access Application Mendix Business Modeler is the tool that allows for the development of Mendix applications with the creation of models. There are three main model types that can be used to build a Mendix application. In Table 1.2 we give a brief overview of them. Domain Model: A data model that describes information in the application domain. This model is used for the generation of the database schema. Pages: Pages are used in order to create the interface for the end-user. A number of widgets are available. Microflows: Process models that express the logic of the application. Table 1.2: Elements of a Mendix application 4
6 1.2.2 Scope In this project we are going to focus on the first dimension of the migration, the Database. Our approach is based on the Database First migration method [WLB + 97]. A MS Access database consists of the Tables (schema and data) and the Queries. In this research we will explore mappings between MS Access schema elements and Mendix Domain Model elements. We will discuss the data migration process, and finally investigate options for migrating MS Access Queries. Afterwards we will create a tool for the automatic migration of a MS Access database schema to Mendix Domain Model. Additionally, since many real-world applications do not have Relationships explicitly defined, we will create a tool for recovering Foreign Key constraints. We will use version 2010 of Microsoft Access and version of Mendix Business Modeler. MS Access can also be part of a more complex system, comprising of other databases and programs. In this project we will focus on applications built with MS Access only. We do not consider databases that make use of passwords or applications with multiple user accounts, since user-level security is not available in Access Microsoft Access might be referred to as Access only in the rest of this thesis. 1.3 Research Questions The main question we will try to answer is: Can we automatically migrate a Microsoft Access database to Mendix Business Modeler? We have the following subquestions: Which features of an Access database schema can be mapped to Mendix Domain Model? Which features cannot be mapped and what are the consequences? Can we automatically migrate MS Access Queries? When or where is human intervention needed? Can we recover missing Foreign Key Relationships from an Access database? 1.4 Outline The remainder of this thesis is structured as follows: In Chapter 2 we give a detailed problem analysis along the three dimensions of the database migration process, namely the schema, data, and queries. In Chapter 3 we present our solution for schema migration. We discuss about the tool we implemented, the features it migrates and its limitations. Chapter 4 is concerned with foreign key recovery. In Chapter 5 we discuss our results in relation with our research questions. In Chapter 6 we give an overview of related work. Finally, in Chapter 7 the conclusion and directions for future work are presented. 5
7 Chapter 2 Problem Analysis 2.1 Schema Migration Schema conversion is the translation of the legacy database structure into an equivalent database structure expressed in the new technology [HCHH08]. This process requires identifying similar or semantically related elements between the source and target systems [DSDR07]. In this section we are going to present MS Access schema elements and explore possible mappings to Mendix Domain Model elements Main Schema Elements Microsoft Access is a relational database management system; data is represented in tuples, grouped into Tables. Each Field of a Table retrieves its values from a certain domain (it has a certain Data Type). Every Table can have exactly one Primary Key that uniquely identifies each row in the table. Additionally, Tables may relate to other Tables with a Foreign Key Relationship. Indexes may also be defined on Fields to speed up search and sorting. The Domain Model in Mendix Business Modeler is based on concepts similar to the relational model. It consists of Entities and their relations, Associations. An Entity can have a number of attributes, each one with its own type and properties. Indexes may also be defined on attributes. We present the mapping between the main constructs of the two systems in Table 2.1. MS Access Schema Elements Tables Fields Relationships Mendix Domain Model Elements Entities Attributes Associations Table 2.1: MS Access Schema - Mendix Domain Model Elements Field Data Types Every Field in an Access Table has a certain Data Type that determines what kind of data can be stored in that Field. Similarly, Attributes in Mendix Domain Model have their own types. We examined the available Data Types in both systems and present them in Table
8 MS Access Field Data Types Text Memo Number Byte Integer Long Integer Single Double Replication ID Decimal Date/Time Currency Autonumber Mendix Domain Model Attribute Types String String Integer Integer Long Integer Float Float Not available as an attribute type Float Date and Time Currency Long Integer Increment Random Replication ID Yes/No Hyperlink OLE Object Attachment Calculated Lookup Field Autnonumber Not available as an attribute type Not available as an attribute type Boolean Not available as an attribute type Not available as an attribute type Not available as an attribute type Not available as an attribute type Not available as an attribute type Table 2.2: Access Field - Mendix Attribute Data Types Most Field Data Types have an equivalent Attribute Type in Mendix. As we can see in Table 2.2 we have mismatches in certain cases, and discuss those below. Replication ID is a Data Type used in database replication, a process where multiple copies of an Access application are created and used in locations that are not always connected to each other. A Field of that type holds a Global Unique Identifier for every row that distinguishes it from any other row in the replica set. This functionality is not available in Mendix Platform. Autonumbers with random values are not available in Mendix Domain Model, and neither are Hyperlinks. Fields of the latter Data Type store text that can be either a UNC path or a URL, and can be followed directly. A possible option would be mapping them to a String Field while the possibility for it to act as a Hyperlink could be determined in Mendix GUI via a special widget. OLE Object and Attachment Fields store files. OLE Object Fields can hold exactly one file for each row, while Attachment fields can hold multiple files. Such an Attribute Type is not available in Mendix, although a possible workaround is available. An Entity in Mendix can inherit from System.FileDocument, a predefined Entity that can represent a file. OLE Object and Attachment Fields could be mapped to such an Entity. An Association should also be created between this Entity and the Entity mapped to the original Access Table. The Association would have to be 1-1 for OLE Object Fields and 1-* for Attachment Fields. Calculated fields are calculated based on other Fields of the same Table. Although there is no such 7
9 Attribute Type in Mendix, it is possible to specify that a certain Attribute is calculated and retrieves its values from a Microflow. The Expressions used to calculate those Fields in Access use operators and functions of Access Expression Language. Thus, MS Access Expression Language needs to be mapped to Mendix Microflow Expressions. The difficulty that arises here is that certain functions and operators in Access do not have an equivalent in Mendix. In Appendix B we present a detailed mapping of the two expression languages operators. The mapping of functions is not provided due to their very large number (over 100) and limitations of time. Lookup Fields are not a separate Data Type although it appears as such in Access. A Field defined as Lookup has an actual Data Type of Text or Number and retrieves its values either from a Table Column, a Query Column or a user-defined List. In the first two cases we have in essence a Foreign Key Field to another Table Column. However, in the case of a user-defined List, we have an extra construct with data that also needs to be migrated. We distinguish two cases: One column value list: A similar construct exists in Mendix Domain Model, the Enumeration. The latter holds a List of user defined values and can be assigned to an Attribute. Multi column value list: A Field of that type retrieves its values from a user-defined multicolumn List. Multi-column Enumerations are not available in the Domain Model. Multi-value Lookup Fields: Fields defined as Lookup may be set to allow Multiple Values. This means that for a single row, the Field can hold multiple values from the Table/Query/List that it retrieves values from. This is equivalent to a Many-To-Many Relationship, where the implementation of the middle Table is hidden from the user. In Mendix Domain Model, Attributes cannot store multiple values for a single object Field & Table Properties A Table Field in Access has a number of Properties that define its characteristics or aspects of its behavior. Certain properties are relevant to the Data Model, for example the Field Size property that determines the length of characters of Text Fields. However, there are also properties that specify GUI related settings and are not related to the database schema. For the schema migration process we are interested only in those properties that are related to Access data model. In Appendix A we present a detailed list of all Properties available for Access Fields and Tables and possible mappings to Mendix Platform Primary Keys In relational databases a Primary Key consists of one or more Fields that uniquely identify each row of a Table. The concept of Primary Keys is not present in Mendix Domain Model. The issue of unique identifiers for each row is dealt internally in the physical database. A unique identifier column is created for every table when the actual database is created and its values are filled automatically. It is possible though to preserve the uniqueness of values for Primary Key columns when they are migrated to Mendix. The Domain Model offers the possibility to set Validation Rules for the Attributes of each Entity. Via such a Validation Rule, Attributes that correspond to Primary Key columns can be set as Unique. We note that these rules cannot be applied to a combination of Attributes. Thus, the case of multi-column Primary Keys cannot be properly mapped. 8
10 2.1.5 Relationships & Foreign Keys In relational databases there is often the need to refer to an object of a Table from a different Table. This is achieved with the use of Foreign Key Relationships. A Foreign Key is a Field that retrieves its values from a Primary Key field. Foreign Keys In Mendix Domain Model, Associations relate Entities in a similar way that Foreign Key Relationships relate Tables in Access. However, the concepts of Primary and Foreign Keys are not present. In Access Relationships the Foreign Key Field of a Relationship points to the Primary Key Field. In the Domain Model Associations are not defined over Attributes, but Entities themselves. We illustrate the difference in Figures 2.1 and 2.2 below. Consider an Access Database holding information about Customers and Orders, with the following schema: Figure 2.1: Foreign Key Relationship in MS Access The equivalent Domain Model for that schema in Mendix Platform would be the following: Figure 2.2: Association in Mendix We can see that Foreign Key Fields are not necessary in Mendix Domain Model for the implementation of Associations. Types of Relationships The following types of Relationships are available in MS Access: One-To-Many Relationship: a row in Table A can have many matching rows in Table B, but a row in Table B has only one matching row in Table A. One-To-One Relationship: each row in Table A can have only one matching row in Table B. Similarly, each row in Table B can have only one matching row in Table A. 9
11 Many-To-Many Relationship: A row in Table A can have multiple matching rows in Table B, and a row in Table B can have multiple matching rows in Table A. This type of relationship requires the definition of a third table. The same types of Associations with the same semantics are available in Mendix Domain Model as well. The difference is that the Many-To-Many Association is not implemented with the use of an extra (middle) Entity. Referential Integrity Referential Integrity is one of the most important constraints in relational databases. It requires every value of a Foreign Key Field to exist as a value of the Field that it references. This constraint is important for the consistency of data, however it is one that is not always enforced in Access Relationships. Three options are possible regarding the enforcement of Referential Integrity in Access: Referential Integrity is enforced without Cascade Deletes/Updates: In this case users cannot enter an invalid Foreign Key value. Deleting referenced records is prohibited, as is updating a referenced Primary Key value. Referential Integrity is enforced with Cascade Deletes/Updates: Invalid Foreign Key values are prohibited. The deletion of referenced records is possible and it is cascaded to the referencing records as well. The same applies for the update of referenced Primary Key values. Referential Integrity is not enforced: Users are not prohibited from entering invalid Foreign Key values, deleting referenced records, or updating referenced Primary Key values. We can see that there are three actions that affect the consistency of data and are affected by the enforcement of Referential Integrity. Those are: a) entering Foreign Key values b) deleting referenced records c) updating referenced Primary Key values. The latter is not applicable in the Domain Model since an Association does not make use of Primary Keys. Entering (valid or invalid) foreign key values is an action equivalent with entering an associated/unassociated object in Mendix, while the deletion of referenced rows in Access is equivalent with the deletion of Mendix objects. In Mendix Platform it is not possible to enter an object with a non-existing reference. It is possible, however, to enter an object with no reference at all. Finally, the deletion of referenced objects can be determined via Associations settings, and the options available correspond to the behaviors that exist in Access, as described before Indexes Indexes are used in Access in order to speed up sorting or searching by a particular Field. The definition of single or multi-column Index is possible. In Mendix Domain Model Indexes can be defined on Attributes, and they can also be single or multi column.this results in the creation of an Index in the underlying database when the model is executed Underspecification Underspecification is a common problem in many software systems. An important constraint that is often missing is the explicit definition of Foreign Key Relationships. The database consists of a set of Tables with columns and there is often no knowledge about how these refer to each other. 10
12 Microsoft Access is often used for development from people that do not have extensive knowledge on software or database design. This idea is clearly expressed by the motto used in Microsoft s website for Access: Create custom apps fast without being a developer. Applications are often built from people that lack the necessary knowledge, and as a result many applications lack an explicit definition of Relationships. Additionally, Microsoft s Access option for Lookup Columns allows for the creation of relationships that are not explicitly defined. Consider the Access schema that we presented in Subsection with Customers and Orders Tables. The CustomerID column of the Table Orders is a Foreign Key Field to the CustomerID column of the Customers Table. Instead of defining it this way, one can do the following: Define the Query Customers Extended as presented in Listing SELECT CustomerID, FirstName, LastName, FirstName + LastName 2 FROM Customers Listing 2.1: SQL Query: Customers Extended Afterwards, define the CustomersID field of table Orders as a Lookup Field, retrieving values from the CustomerID column of Customers Extended Query. 1 SELECT CustomerID 2 FROM Customers Extended Listing 2.2: SQL Query for Lookup Field This Field will retrieve values from the CustomerID field of Customers Table. The Field is explicit in the Query, and it would be possible to retrieve it with parsing of both SQL Queries. However, we consider it as a form of underspecification because no Relationship is explicitly created between the two fields: it is not visible in the Relationships window of Access, it cannot be retrieved as such with available tools and no Referential Integrity can be enforced on it. 2.2 Data Migration Once the Access database schema is converted to Mendix Domain Model, the next step is the migration of data. Data migration is handled by a process referred to as Extract-Transform-Load and requires three steps [HCHH08]: First, the data are extracted from the legacy database. Second, they are transformed in such a way that their structure matches the target schema. Finally, they are loaded to the new database. This process relies on the mapping between the source and target database schema. Different databases may be used as back-end in Mendix. The most common case is that an application is deployed on Mendix Cloud, where PostgreSQL is used. It is also possible for a user to configure their own server, like Oracle or MS SQL Server Finally, a Mendix application may be deployed locally for the users and developers to test and the built-in HSQL database is used then Different source-target schema The databases used as back-end are all relational, and the mapping between the Domain Model elements and the physical database elements is the following: For each Entity of the Domain Model, a Table is created in the database, while Entity Attributes correspond to Table Columns. Additionally, 11
13 an extra Column is created with a unique identifier for each row. For each Association, a separate Table is created with Columns the unique identifiers of the associated Tables. Consider again the following Access database schema: Figure 2.3: MS Access Schema - Customers & Orders And the corresponding Domain Model for that schema: Figure 2.4: Domain Model - Customers & Orders In the images below we present the tables created for the two Entities, Customer and Order, and the Association between them, in the built-in HSQL database: Figure 2.5: Customer Table in Mendix built-in HSQL Database Figure 2.6: Order Table in Mendix built-in HSQL Database Figure 2.7: Table for the CustomerOrder Association in Mendix built-in HSQL database The target database that is going to be generated in Mendix will have a different schema than the source database. First, additional Columns are created in every Table that stores an Entity, holding 12
14 unique identifier values for each row. Separate extra Tables are created for every Association of the Domain Model. Additionally, since Foreign Key Fields are not necessary for Associations in Mendix Domain Model, they could be omitted. Finally, Attachment and OLE Object Fields do not have equivalent Attributes in Mendix, but they can be mapped to a separate Entity. For Access applications that make use of such Fields, the target database will have extra Tables as a result of mapping those Fields Data Quality Data is a significant resource in all organizations. Activities and important decisions in companies are based on data and information obtained from data analysis [SSPA + 12]. Thus, its quality is critical. Sidi et al. [SSPA + 12] present an overview of different dimensions that affect data s quality. One such dimension is the consistency of data, which refers to the violation of semantic rules defined over a set of data [BCFM09]. In section we presented the constraint of Referential Integrity and the impact that its absence can have on the consistency of data. We consider again the example with Customer and Order Tables: If referential integrity is not enforced in the Relationship between them, the users may enter Orders with a Customer reference that does not exist. The CustomerID field of the Customer table may be updated for a certain referenced row, with no warning from Access, and no consequent update in the Orders that reference it. Additionally, Customers with existing Orders may be deleted, which will result in rows in Orders Tables with an invalid Customer reference. An additional feature of Microsoft Access also allows for inconsistent data. In section we presented Lookup Fields in Access, that retrieve values either from a Table, a Query or a user-defined List. Via a property available for those fields, it is possible to specify that the values entered are not limited to the List. In this case, users may enter values that do not exist in those Fields data source, and thus refer to a non-existent object. Finally, data quality problems may arise at instance level as well [SSPA + 12]. For instance, redundant duplicates entered by the users of the software system. For those reasons, data cleaning may be a necessary step before the migration of data. 2.3 Queries Migration Queries are Microsoft Access Objects that are used in order to retrieve or operate on data, or define data structures. Access uses Structured Query Language (SQL) as a query language. Queries can be used in various locations in an Access application: they can be a data source for a Form, a Report, a GUI widget, or a Lookup Field. They may also be used in Macros or called from the application code. A single query may be used in more than one location. In Mendix Business Modeler there are two constructs that perform retrieval and operations on data: Microflows and Object Query Language (OQL). OQL is a query language similar to SQL that retrieves data from Entity objects and tt can be used as a data source in Mendix Reports only. Microflows can perform a series of actions and data retrieval is one of them. They can be used as a data source in Mendix Pages, although this use is not very common. Thus, the optimal mapping for Access SQL is not immediately apparent. The set of statements available in SQL can be divided into the Data Definition Language (DDL) and the Data Manipulation Language (DML). The Data Definition Language consists of the set of statements for defining the database schema. With Access SQL it is possible to define, alter or delete the following constructs: Tables, Users, Indexes, Views, and Procedures. In Mendix Business Modeler, Entities, Indexes and Users are created in the graphical editor of Mendix Business Modeler. There is 13
15 no language or other construct for the automatic creation of these objects. We will therefore explore a mapping for Queries that constitute the Data Manipulation Language Mapping Queries to Microflows In Mendix Business Modeler, Microflows are constructs that can perform a series of Actions. Those Actions include retrieval of Entity objects, creation, deletion or change of Entity objects. Microflows accept parameters, they can perform Actions in Loops and may return a result after their execution. Their execution is possible with a button call from Mendix Pages, within another Microflow, and they can additionally be used as a data source in widgets of Mendix Pages SQL Action Queries Action Queries perform changes on data. There are three types of Action Queries, for deleting, updating and inserting data respectively. In Table 2.3 we present the three SQL statements that belong in Action Queries and a possible mapping to Mendix Microflows. Microsoft Access Query DELETE Statement DELETE [table.*] FROM table WHERE criteria INSERT INTO Statement Single-record append query INSERT INTO target [(field1 [, field2 [, ]])] VALUES (value1 [, value2 [, ]) Multiple-record append query INSERT INTO target [(field1 [, field2 [, ]])] [IN externaldatabase] SELECT [source.]field1 [, field2 [, ] FROM tableexpression UPDATE Statement UPDATE table SET newvalue WHERE criteria; Mendix Microflow Microflow Action: Retrieve a list of Entity objects Map criteria to XPath constraint Action: Delete list of Entity objects For single-record append query Microflow Action: Create an object of a specific Entity Set values for its Attributes Commit object to Database For multiple-record append query The mapping depends on the complexity of the Query. See information later on this chapter. Microflow Action: Retrieve a list of Entity objects Map criteria to XPath constraint Action: In a Loop, set new values for the Attributes of each Entity object Table 2.3: SQL Action Queries - Mendix Microflows The mapping of an SQL Action Query to a Microflow may or may not be possible depending on the features that it includes. Specifically, we note two issues: a) Mapping the criteria in WHERE clause to Mendix XPath b) Mapping Queries with nested SELECT statements, like the multi-record append query in Table 2.3. We elaborate on those in the next two subsections. 14
16 WHERE clause to Mendix XPath The WHERE clause specifies the criteria that records must satisfy to be included in the Query results. The criteria have the form of an expression, which can be a comparison statement, an expression including Access special operators, a function, or an exists statement. In Microflows such criteria can be determined with an XPath constraint. Mendix XPath is a query language used in Mendix Modeler in order retrieve data from Entity objects, their Attributes or Associations. Only the constraint part of the XPath query is used in a Microflow, and we therefore need to investigate if SQL expressions can be mapped to XPath expressions. SQL expressions in WHERE clause may perform comparisons, for example checking if a Table Column has a certain value. These expressions are linked by logical operators and may also include arithmetic operations as well. In Appendix C we present a list of Comparison, Special, Logical and Arithmetic Operators that are used in SQL and their equivalent in Mendix XPath. For most of them have there is an equivalence in Mendix XPath. However, we note mismatches in some cases, like the Like and In operators. Criteria that use such operators cannot be translated to XPath. An additional difficulty is migrating Queries that use functions in the WHERE clause. Over 100 VBA functions are available in Access SQL. Due to time constraints and the big number of functions, we do not present a detailed list of mapping for those functions. However, in XPath constraints the functions available are only 18. Thus, for many of those a mapping is not possible. Finally, a SELECT query may be used in a WHERE clause, either as part of a comparison or in a Subquery. Investigating the mapping of SELECT queries to XPath Queries would be the next step in this process. However, an XPath Query cannot be included in the XPath constraint part of Microflows. Since this mapping is not possible, we did not investigate this any further. Nested SELECT statements Multi-record append queries use a SELECT statement in order to retrieve the data that are going to be inserted in a certain Table. The possibility to map such a Query depends on the features that it uses. Certain features can be mapped to Microflows, but there are also cases where the mapping is not possible. We discuss the mapping of SELECT statements to Microflows in the next subsection. This analysis applies here as well SQL Select Queries The syntax of a SELECT query is the following: SELECT [predicate] { table. [table.]field1 [AS alias1] [, [table.] field2 [AS alias2] [,...]]} FROM tableexpression [,...] [IN externaldatabase] [WHERE...] [GROUP BY...] [HAVING...] [ORDER BY...] [WITH OWNERACCESS OPTION] Listing 2.3: SQL Select Statement The arguments in square brackets are optional. A SELECT statement may return columns of one or multiple tables, by performing a JOIN operation in the FROM clause. In Microflows an XPath constraint can be used to retrieve objects for which an Association exists. This is equivalent with an INNER JOIN in SQL. The operations of LEFT and RIGHT JOIN cannot be performed in a Microflow. Additionally, a Microflow can return objects of only one Entity. Thus, for Queries that 15
17 return objects from multiple tables a mapping to a Microflow is not possible even if an INNER JOIN is used. We can see that a big number of features is available in a SELECT query. The mapping of the WHERE clause to Mendix XPath constraint was examined in the previous section for Action queries, and it applies here as well. The possibility to migrate this clause depends on the operators and functions used in the Query. The ORDER BY clause is a feature that is available in Microflows. However, the GROUP BY clause provides functionality that cannot be performed in Microflows. Although it is possible to aggregate objects in Mendix Microflows, grouping results by a certain column the way it is performed in SQL is not possible. Finally, a SELECT query may perform operations among Table columns and return those in the results as well. However, a Microflow cannot return additional columns along with an Entity s Attributes. The features [IN externaldatabase] and [WITH OWNERACCESSOPTION] are not relevant with our research, as they concern retrieval of data from external databases and multi-user environments and are outside of our scope Mapping Queries to OQL Object Query Language (OQL) is a relational query language used in Mendix Platform in order to retrieve data from the database. OQL is very similar to SQL, and it uses Entity and Association names instead of the actual database table names. It supports SELECT queries only. In Listing 2.3 we presented the syntax for an SQL Select statement. Below we give the syntax of an OQL Select statement, where the arguments in square brackets are optional: SELECT [ DISTINCT ] { { entity name from alias }. { expression [ [ AS ] column alias ] } [,... n ] } FROM { entity name ( sub oql query ) } [ [ AS ] from alias ] { { INNER { { LEFT RIGHT FULL } [ OUTER ] } } JOIN entity name [ [ AS ] from alias ] ON <constraint> } [,... n] [WHERE <constraint>] [GROUP BY expression [,...n ]] [HAVING <constraint>] [ORDER BY { order by expression [ ASC DESC ] } ] [LIMIT number ] [ OFFSET number ] Listing 2.4: OQL Select Statement The SELECT clause specifies which Entity Attributes are returned by the query. Attributes from multiple Entities may be return as well as expressions like in SQL. Aliases and predicates are used in both languages. We give a detailed list of predicates supported in both languages in Appendix D. We note a mismatch with the [TOP n [PERCENT]] and DISTINCT predicates, which are not supported in OQL. The FROM clause specifies the Table(s) or Query(-ies) that the data is retrieved from. Similarly with SQL, OQL can retrieve data from Entities or other OQL subqueries. In the latter case, the subquery 16
18 should be included within the main query, as it is not possible to reference an OQL Subquery by name as in SQL. The types of JOINS available are the same in both languages. However, in OQL a JOIN may be performed on Entities that are associated. In SQL, it is possible to perform a JOIN on Fields that do not have a Primary-Foreign Key Relationship. The WHERE clause of SQL specifies the criteria that records must satisfy in order to be included in the query result. As we already saw, the expression in the WHERE clause may perform a comparison using Table columns, and it may include Subqueries and VBA functions. In Appendix D we present a mapping from SQL to OQL operators. Most of them are the same in both languages. The operators ANY, ALL and SOME that are used with Subqueries in SQL are not available in OQL. The ORDER BY and GROUP BY clauses are used in both languages with the same functionality. The only difference is the Aggregate functions supported, which are presented in Appendix D as well. 2.4 Overview of our approach In this project, we will focus on Schema Migration of Access applications to Mendix Domain Model. We will create a description of mappings between Access and Mendix schema elements, and based on that we will implement a tool that performs an automated schema migration. Additionally, since many real-world databases lack an explicit definition of Foreign Keys, we will try to recover those constraints by examining the data for inclusion dependencies. The following two chapters describe details of our approach, the solution given, and its limitations. 17
19 Chapter 3 Access2Mendix: Access Schema Migration After examining the schema elements of the two systems we implemented a tool, Access2Mendix, for migrating the database schema of MS Access applications to Mendix Domain Model. In this chapter we present a description of the schema mappings and details of our implementation. In the end, we perform an evaluation of our tool and discuss Access2Mendix s possibilities and limitations. 3.1 Solution: Schema Mappings In section 2.1 we investigated the similarities and differences between the schema elements of the two systems, Access and Mendix Modeler. As Hainaut et al. note in [HCHH08], schema conversion produces a formal description of the mapping between the objects of the source and target system. In this section we present those mappings. In Table 3.1 we can see the mappings of the main Access schema elements. Tables are mapped to Domain Model Entities, while Table Fields are mapped to either Attributes or an Entity and Association. The latter case applies for Fields whose Data Type is OLE Object or Attachment. Relationships are mapped to Associations and Indexes to Mendix Indexes. MS Access Schema Elements Mendix Domain Model Elements Tables Entities Fields Attributes OR Entity + Association Relationships Associations Indexes Indexes Table 3.1: MS Access - Mendix : Mapping of main schema elements Fields are mapped according to their Data Type, as presented in Table 3.2: 18
20 MS Access Field Data Types Text Memo Number Byte Integer Long Integer Single Double Replication ID Decimal Date/Time Currency Autonumber Mendix Domain Model Attribute Types String String Integer Integer Long Integer Float Float Not mapped Float Date and Time Currency Long Integer Increment Random Replication ID Yes/No Hyperlink OLE Object Attachment Calculated Lookup Field - One Column Value List Lookup Field - Multi Column Value List Multi-value Lookup Field One Column Value List Multi-value Lookup Field Multi Column Value List Autonumber Autonumber Not mapped Boolean String Entity that inherits from System.FileDocument 1-1 Association with the Entity mapped to the Table this field belongs to Entity that inherits from System.FileDocument 1-* Association with the Entity mapped to the Table this field belongs to Set Attribute as Calculated and create a Microflow Attribute of Type String or Number, according to the actual Data Type Enumeration assigned to Attribute Entity with Attributes the Columns of the Value List 1-1 Association with the Entity mapped to the Table this field belongs to Entity with an Attribute holding the List values *-* Association with the Entity mapped to the Table this field belongs to Entity with Attributes the Columns of the Value List *-* Association with the Entity mapped to the Table this field belongs to Table 3.2: MS Access - Mendix Data Type Mappings 19
21 Fields of type Replication IDs are not migrated. In case that a Microsoft Access application is part of a replica set, only one copy of the replica set will be used for the migration. Since replication is not supported in Mendix, Fields of that type would not be useful and thus we chose to omit them. We decided to map Random Autonumbers from MS Access to incremental Autonumbers in Mendix. The random Autonumber values could be replaced with incremental ones in data migration. Extra care should be taken if those Fields are part of a Foreign Key Relationship. In that case, one should also correctly replace and migrate the referenced values as well. Regarding the mapping of OLE Objects and Attachment Fields to a separate Entity and Association, we also have to correctly map the Delete Behavior of that Association. Consider a Table Customer that includes an Attachment Field named Picture. When a row is deleted from Customers Table in Access, the contents of Picture are deleted as well. In the migrated Domain Model, Customer and Picture are represented by separate Entities. In order to simulate the delete behavior of a row in Access, we specified the Delete Behavior of such an Association as On Delete of a Customer Object, Delete Picture as well. and On Delete of Picture object, keep Customer object(s).. Fields that are Calculated are mapped to an Attribute in Mendix with Type the actual Data Type of the Field. Additionally, they are set as Calculated and a Microflow is created and assigned to the Attribute. This Microflow performs the Action of creating a new Variable. The initial value of this Variable is set as the expression from Access, and then returned to the Attribute. In order for those Fields to be migrated correctly, the Expression Language of Access needs to be mapped to Microflow Expressions. The two languages have some differences in the operators and the functions they use. Due to time limitations, we did not perform that mapping. We performed a mapping from Access Field Names to Attribute Names and transfered the rest of the expression as is. As a result, some Microflows may contain errors that will have to be manually corrected, where it is possible. Finally, we were not able to map Multi-value Lookup Fields because of limitations in the API we used. In order to correctly migrate those fields to Mendix we need to know what their data source is, the number of columns of the data source and the values themselves. Our API did not provide methods for retrieving this information for Multi-Value Fields. Thus, their migration is a task that must be done manually by the user, according to Table 3.2. Field and Table Properties in Access determine their characteristics or behavior. As we discussed in certain properties are related to the Data Model while others determine GUI related settings. We migrated only the properties that are relevant to the Data Model, and we present those in the following Table: MS Access Field Properties Mendix Properties Default Value Default Value Required Validation Rule of Required for the relevant Attribute Field Size Max length Expression (for Calculated Fields) Initial Value in the variable of the Microflow Table 3.3: MS Access - Mendix : Mapping of Field Properties In order to preserve the uniqueness of values for Attributes that correspond to Primary Key columns, we implemented in Mendix a Validation Rule of Unique for them. This was not possible for multicolumn Primary Keys, as Mendix Validation Rules can be applied to a single Attribute only. 20
22 MS Access Primary Keys Mendix Unary Primary Keys Validation Rule of Unique for the relevant Attribute Multi-column Primary Keys Not mapped Table 3.4: MS Access - Mendix : Mapping of Primary Keys Relationships are mapped to Associations according to their type, as presented in Table 3.5. MS Access Relationships 1-1 Relationship 1-* Relationship Mendix Associations 1-1 Association Foreign Key Fields omitted 1-* Association Foreign Key Fields omitted Table 3.5: MS Access - Mendix : Mapping of Relationships A many-to-many Relationship is implemented in Access with the use of a third (middle) Table. Each of the two related Tables has a one-to-many relationship with the middle Table. The Primary Key of the middle Table consists of two fields: each of them is a Foreign Key to one related Table. A many-to-many Association in Mendix does not require the use of a middle Entity and one could think omitting this Table. However, apart from the Foreign Keys to the related Tables, this middle Table may contain extra Fields. Thus, we decided to migrate it. Finally, we specified the Delete Behavior of Mendix Associations based on Referential Integrity settings of Access Relationships. The mappings are presented in Table 3.6. MS Access Referential Integrity Referential Integrity not enforced Referential Integrity enforced, with Cascade Deletes Referential Integrity enforced, without Cascade Deletes Mendix Associations - Delete Behavior On Delete of Object A Keep Object B On Delete of Object A Delete Object B Delete Object A only if it is not associated with B Objects Table 3.6: MS Access - Mendix : Mapping of Delete Behavior 3.2 Implementation Access2Mendix was implemented using Java and C#. The implementation was part of Mendix Modeler, which allowed us to reuse existing C# code for the generation of the Domain Model. Java was used for the retrieval of MS Access schema, since the library Jackcess provided an easy to understand and use interface. We describe in this section the algorithms we used for migrating the Access schema elements and also details of our implementation Algorithms The main constructs of an Access schema are Tables, Fields, Relationships and Indexes. Our tool iterates through all Tables and their Fields in order to generate the migrated Domain Model in Mendix. 21
23 Afterwards, it iterates through the Relationships in order to create the necessary Associations. The generation of the Domain Model is described in Algorithms 1 and 2. Data: Tables, Fields and Indexes of Access Schema Result: Entities, Attributes and Indexes in Mendix Domain Model foreach Table t do create Entity e; foreach Field f in Table t do if f is OLE Oject then create Entity entfile that inherits from System.FileDocument; create 1-1 Association between entfile and e; end else if f is Attachment then create Entity entfile that inherits from System.FileDocument; create 1-* Association between entfile and e; end else create Attribute attr; add attr to e; if f is Calculated then create Microflow m; assign m to attr; end end end foreach Index in Table t do create Index i; end end Algorithm 1: Algorithm to create Domain Model Entities, Attributes and Indexes Data: Relationships of Access Schema Result: Associations in Mendix Domain Model foreach Relationship r do if Type of r is 1-1 then create 1-1 Association; end else create 1-* Association; end if Referential Integrity is enforced with Cascade Deletes then On Delete of Object A Delete Object B; end else if Referential Integrity is enforced without Cascade Deletes then Delete Object A only if it is not associated with B Objects; end else On Delete of Object A Keep Object B; end end Algorithm 2: Algorithm to create Domain Model Associations 22
Database Programming with PL/SQL: Learning Objectives
Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs
More informationHow To Create A Table In Sql 2.5.2.2 (Ahem)
Database Systems Unit 5 Database Implementation: SQL Data Definition Language Learning Goals In this unit you will learn how to transfer a logical data model into a physical database, how to extend or
More informationDatabases in Engineering / Lab-1 (MS-Access/SQL)
COVER PAGE Databases in Engineering / Lab-1 (MS-Access/SQL) ITU - Geomatics 2014 2015 Fall 1 Table of Contents COVER PAGE... 0 1. INTRODUCTION... 3 1.1 Fundamentals... 3 1.2 How To Create a Database File
More informationMOC 20461C: Querying Microsoft SQL Server. Course Overview
MOC 20461C: Querying Microsoft SQL Server Course Overview This course provides students with the knowledge and skills to query Microsoft SQL Server. Students will learn about T-SQL querying, SQL Server
More informationUsing AND in a Query: Step 1: Open Query Design
Using AND in a Query: Step 1: Open Query Design From the Database window, choose Query on the Objects bar. The list of saved queries is displayed, as shown in this figure. Click the Design button. The
More informationDuration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff
D80198GC10 Oracle Database 12c SQL and Fundamentals Summary Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff Level Professional Delivery Method Instructor-led
More informationOracle 10g PL/SQL Training
Oracle 10g PL/SQL Training Course Number: ORCL PS01 Length: 3 Day(s) Certification Exam This course will help you prepare for the following exams: 1Z0 042 1Z0 043 Course Overview PL/SQL is Oracle's Procedural
More informationExploring Microsoft Office Access 2007. Chapter 2: Relational Databases and Multi-Table Queries
Exploring Microsoft Office Access 2007 Chapter 2: Relational Databases and Multi-Table Queries 1 Objectives Design data Create tables Understand table relationships Share data with Excel Establish table
More informationTable and field properties Tables and fields also have properties that you can set to control their characteristics or behavior.
Create a table When you create a database, you store your data in tables subject-based lists that contain rows and columns. For instance, you can create a Contacts table to store a list of names, addresses,
More informationIntroduction to Microsoft Jet SQL
Introduction to Microsoft Jet SQL Microsoft Jet SQL is a relational database language based on the SQL 1989 standard of the American Standards Institute (ANSI). Microsoft Jet SQL contains two kinds of
More informationMicrosoft Access Basics
Microsoft Access Basics 2006 ipic Development Group, LLC Authored by James D Ballotti Microsoft, Access, Excel, Word, and Office are registered trademarks of the Microsoft Corporation Version 1 - Revision
More informationOracle Database: SQL and PL/SQL Fundamentals NEW
Oracle University Contact Us: + 38516306373 Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training delivers the
More informationOracle Database 10g: Introduction to SQL
Oracle University Contact Us: 1.800.529.0165 Oracle Database 10g: Introduction to SQL Duration: 5 Days What you will learn This course offers students an introduction to Oracle Database 10g database technology.
More informationICAB4136B Use structured query language to create database structures and manipulate data
ICAB4136B Use structured query language to create database structures and manipulate data Release: 1 ICAB4136B Use structured query language to create database structures and manipulate data Modification
More information- Suresh Khanal. http://mcqsets.com. http://www.psexam.com Microsoft Excel Short Questions and Answers 1
- Suresh Khanal http://mcqsets.com http://www.psexam.com Microsoft Excel Short Questions and Answers 1 Microsoft Access Short Questions and Answers with Illustrations Part I Suresh Khanal Kalanki, Kathmandu
More informationOracle Database: SQL and PL/SQL Fundamentals
Oracle University Contact Us: 1.800.529.0165 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This course is designed to deliver the fundamentals of SQL and PL/SQL along
More informationMS Access Lab 2. Topic: Tables
MS Access Lab 2 Topic: Tables Summary Introduction: Tables, Start to build a new database Creating Tables: Datasheet View, Design View Working with Data: Sorting, Filtering Help on Tables Introduction
More informationMySQL for Beginners Ed 3
Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.
More informationSQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.
SQL Databases Course by Applied Technology Research Center. 23 September 2015 This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases. Oracle Topics This Oracle Database: SQL
More informationGuide to Upsizing from Access to SQL Server
Guide to Upsizing from Access to SQL Server An introduction to the issues involved in upsizing an application from Microsoft Access to SQL Server January 2003 Aztec Computing 1 Why Should I Consider Upsizing
More informationOracle Database: SQL and PL/SQL Fundamentals
Oracle University Contact Us: +966 12 739 894 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training is designed to
More informationA Brief Introduction to MySQL
A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term
More informationDatabases with Microsoft Access. Using Access to create Databases Jan-Feb 2003
Databases with Microsoft Access Using Access to create Databases Jan-Feb 2003 What is a Database? An Organized collection of information about a subject. Examples: Address Book Telephone Book Filing Cabinet
More informationDatabase design 1 The Database Design Process: Before you build the tables and other objects that will make up your system, it is important to take time to design it. A good design is the keystone to creating
More informationIT2305 Database Systems I (Compulsory)
Database Systems I (Compulsory) INTRODUCTION This is one of the 4 modules designed for Semester 2 of Bachelor of Information Technology Degree program. CREDITS: 04 LEARNING OUTCOMES On completion of this
More informationMicrosoft Access 2003 Module 1
Microsoft Access 003 Module http://pds.hccfl.edu/pds Microsoft Access 003: Module June 005 006 Hillsborough Community College - Professional Development Services Hillsborough Community College - Professional
More informationA Basic introduction to Microsoft Access
A Basic introduction to Microsoft Access By Ojango J.M.K Department of Animal Sciences, Egerton University, Njoro, Kenya and International Livestock Research Institute, Nairobi, Kenya Ms Access is a database
More informationSQL Server. 2012 for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach
TRAINING & REFERENCE murach's SQL Server 2012 for developers Bryan Syverson Joel Murach Mike Murach & Associates, Inc. 4340 N. Knoll Ave. Fresno, CA 93722 www.murach.com murachbooks@murach.com Expanded
More informationSQL Server. 1. What is RDBMS?
SQL Server 1. What is RDBMS? Relational Data Base Management Systems (RDBMS) are database management systems that maintain data records and indices in tables. Relationships may be created and maintained
More informationOracle Database 12c: Introduction to SQL Ed 1.1
Oracle University Contact Us: 1.800.529.0165 Oracle Database 12c: Introduction to SQL Ed 1.1 Duration: 5 Days What you will learn This Oracle Database: Introduction to SQL training helps you write subqueries,
More informationHP Quality Center. Upgrade Preparation Guide
HP Quality Center Upgrade Preparation Guide Document Release Date: November 2008 Software Release Date: November 2008 Legal Notices Warranty The only warranties for HP products and services are set forth
More informationTIM 50 - Business Information Systems
TIM 50 - Business Information Systems Lecture 15 UC Santa Cruz March 1, 2015 The Database Approach to Data Management Database: Collection of related files containing records on people, places, or things.
More information2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA www.sybex.com
Essential SQL 2 Essential SQL This bonus chapter is provided with Mastering Delphi 6. It is a basic introduction to SQL to accompany Chapter 14, Client/Server Programming. RDBMS packages are generally
More informationInstant SQL Programming
Instant SQL Programming Joe Celko Wrox Press Ltd. INSTANT Table of Contents Introduction 1 What Can SQL Do for Me? 2 Who Should Use This Book? 2 How To Use This Book 3 What You Should Know 3 Conventions
More informationOracle SQL. Course Summary. Duration. Objectives
Oracle SQL Course Summary Identify the major structural components of the Oracle Database 11g Create reports of aggregated data Write SELECT statements that include queries Retrieve row and column data
More informationChapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification
Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 Outline More Complex SQL Retrieval Queries
More informationIT2304: Database Systems 1 (DBS 1)
: Database Systems 1 (DBS 1) (Compulsory) 1. OUTLINE OF SYLLABUS Topic Minimum number of hours Introduction to DBMS 07 Relational Data Model 03 Data manipulation using Relational Algebra 06 Data manipulation
More informationMS ACCESS DATABASE DATA TYPES
MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,
More informationMicrosoft' Excel & Access Integration
Microsoft' Excel & Access Integration with Office 2007 Michael Alexander and Geoffrey Clark J1807 ; pwiueyb Wiley Publishing, Inc. Contents About the Authors Acknowledgments Introduction Part I: Basic
More informationSQL Server An Overview
SQL Server An Overview SQL Server Microsoft SQL Server is designed to work effectively in a number of environments: As a two-tier or multi-tier client/server database system As a desktop database system
More informationInformation Systems SQL. Nikolaj Popov
Information Systems SQL Nikolaj Popov Research Institute for Symbolic Computation Johannes Kepler University of Linz, Austria popov@risc.uni-linz.ac.at Outline SQL Table Creation Populating and Modifying
More informationOracle Database 11g SQL
AO3 - Version: 2 19 June 2016 Oracle Database 11g SQL Oracle Database 11g SQL AO3 - Version: 2 3 days Course Description: This course provides the essential SQL skills that allow developers to write queries
More informationHow to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
More information4. The Third Stage In Designing A Database Is When We Analyze Our Tables More Closely And Create A Between Tables
1. What Are The Different Views To Display A Table A) Datasheet View B) Design View C) Pivote Table & Pivot Chart View D) All Of Above 2. Which Of The Following Creates A Drop Down List Of Values To Choose
More informationOracle Database: SQL and PL/SQL Fundamentals NEW
Oracle University Contact Us: 001-855-844-3881 & 001-800-514-06-97 Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals
More informationSection of DBMS Selection & Evaluation Questionnaire
Section of DBMS Selection & Evaluation Questionnaire Whitemarsh Information Systems Corporation 2008 Althea Lane Bowie, Maryland 20716 Tele: 301-249-1142 Email: mmgorman@wiscorp.com Web: www.wiscorp.com
More informationSQL. Short introduction
SQL Short introduction 1 Overview SQL, which stands for Structured Query Language, is used to communicate with a database. Through SQL one can create, manipulate, query and delete tables and contents.
More informationQuerying Microsoft SQL Server
Course 20461C: Querying Microsoft SQL Server Module 1: Introduction to Microsoft SQL Server 2014 This module introduces the SQL Server platform and major tools. It discusses editions, versions, tools used
More informationMicrosoft Access Glossary of Terms
Microsoft Access Glossary of Terms A Free Document From www.chimpytech.com COPYRIGHT NOTICE This document is copyright chimpytech.com. Please feel free to distribute and give away this document to your
More informationUtility Software II lab 1 Jacek Wiślicki, jacenty@kis.p.lodz.pl original material by Hubert Kołodziejski
MS ACCESS - INTRODUCTION MS Access is an example of a relational database. It allows to build and maintain small and medium-sized databases and to supply them with a graphical user interface. The aim of
More informationChapter 6: Physical Database Design and Performance. Database Development Process. Physical Design Process. Physical Database Design
Chapter 6: Physical Database Design and Performance Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden Robert C. Nickerson ISYS 464 Spring 2003 Topic 23 Database
More informationOnce the schema has been designed, it can be implemented in the RDBMS.
2. Creating a database Designing the database schema... 1 Representing Classes, Attributes and Objects... 2 Data types... 5 Additional constraints... 6 Choosing the right fields... 7 Implementing a table
More informationAccess Tutorial 2: Tables
Access Tutorial 2: Tables 2.1 Introduction: The importance of good table design Tables are where data in a database is stored; consequently, tables form the core of any database application. In addition
More informationData Modeling Basics
Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy
More informationMicrosoft Access Part I (Database Design Basics) ShortCourse Handout
Microsoft Access Part I (Database Design Basics) ShortCourse Handout July 2004, Technology Support, Texas Tech University. ALL RIGHTS RESERVED. Members of Texas Tech University or Texas Tech Health Sciences
More informationAccess 2007. Creating Databases - Fundamentals
Access 2007 Creating Databases - Fundamentals Contents Database Design Objectives of database design 1 Process of database design 1 Creating a New Database... 3 Tables... 4 Creating a table in design view
More informationKen Goldberg Database Lab Notes. There are three types of relationships: One-to-One (1:1) One-to-Many (1:N) Many-to-Many (M:N).
Lab 3 Relationships in ER Diagram and Relationships in MS Access MS Access Lab 3 Summary Introduction to Relationships Why Define Relationships? Relationships in ER Diagram vs. Relationships in MS Access
More informationAV-005: Administering and Implementing a Data Warehouse with SQL Server 2014
AV-005: Administering and Implementing a Data Warehouse with SQL Server 2014 Career Details Duration 105 hours Prerequisites This career requires that you meet the following prerequisites: Working knowledge
More informationwww.dotnetsparkles.wordpress.com
Database Design Considerations Designing a database requires an understanding of both the business functions you want to model and the database concepts and features used to represent those business functions.
More informationMS Access: Advanced Tables and Queries. Lesson Notes Author: Pamela Schmidt
Lesson Notes Author: Pamela Schmidt Tables Text Fields (Default) Text or combinations of text and numbers, as well as numbers that don't require calculations, such as phone numbers. or the length set by
More informationWeb Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
More informationUser Services. Microsoft Access 2003 II. Use the new Microsoft
User Services July 2007 OBJECTIVES Develop Field Properties Import Data from an Excel Spreadsheet Create Relationships Create a Form with a Subform Create Action Queries Create Command Buttons Create a
More informationCourse 103402 MIS. Foundations of Business Intelligence
Oman College of Management and Technology Course 103402 MIS Topic 5 Foundations of Business Intelligence CS/MIS Department Organizing Data in a Traditional File Environment File organization concepts Database:
More informationOracle Database: Develop PL/SQL Program Units
Oracle University Contact Us: 1.800.529.0165 Oracle Database: Develop PL/SQL Program Units Duration: 3 Days What you will learn This Oracle Database: Develop PL/SQL Program Units course is designed for
More informationFoundations of Business Intelligence: Databases and Information Management
Foundations of Business Intelligence: Databases and Information Management Content Problems of managing data resources in a traditional file environment Capabilities and value of a database management
More informationMOC 20461 QUERYING MICROSOFT SQL SERVER
ONE STEP AHEAD. MOC 20461 QUERYING MICROSOFT SQL SERVER Length: 5 days Level: 300 Technology: Microsoft SQL Server Delivery Method: Instructor-led (classroom) COURSE OUTLINE Module 1: Introduction to Microsoft
More informationwww.gr8ambitionz.com
Data Base Management Systems (DBMS) Study Material (Objective Type questions with Answers) Shared by Akhil Arora Powered by www. your A to Z competitive exam guide Database Objective type questions Q.1
More informationMicrosoft Access 3: Understanding and Creating Queries
Microsoft Access 3: Understanding and Creating Queries In Access Level 2, we learned how to perform basic data retrievals by using Search & Replace functions and Sort & Filter functions. For more complex
More informationINFORMATION BROCHURE Certificate Course in Web Design Using PHP/MySQL
INFORMATION BROCHURE OF Certificate Course in Web Design Using PHP/MySQL National Institute of Electronics & Information Technology (An Autonomous Scientific Society of Department of Information Technology,
More informationOracle Database 10g Express
Oracle Database 10g Express This tutorial prepares the Oracle Database 10g Express Edition Developer to perform common development and administrative tasks of Oracle Database 10g Express Edition. Objectives
More informationCHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY
CHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY 2.1 Introduction In this chapter, I am going to introduce Database Management Systems (DBMS) and the Structured Query Language (SQL), its syntax and usage.
More informationPhysical Design. Meeting the needs of the users is the gold standard against which we measure our success in creating a database.
Physical Design Physical Database Design (Defined): Process of producing a description of the implementation of the database on secondary storage; it describes the base relations, file organizations, and
More informationCourse ID#: 1401-801-14-W 35 Hrs. Course Content
Course Content Course Description: This 5-day instructor led course provides students with the technical skills required to write basic Transact- SQL queries for Microsoft SQL Server 2014. This course
More informationDbSchema Tutorial with Introduction in SQL Databases
DbSchema Tutorial with Introduction in SQL Databases Contents Connect to the Database and Create First Tables... 2 Create Foreign Keys... 7 Create Indexes... 9 Generate Random Data... 11 Relational Data
More informationDeveloping Web Applications for Microsoft SQL Server Databases - What you need to know
Developing Web Applications for Microsoft SQL Server Databases - What you need to know ATEC2008 Conference Session Description Alpha Five s web components simplify working with SQL databases, but what
More informationQlik REST Connector Installation and User Guide
Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All
More informationDatabase Query 1: SQL Basics
Database Query 1: SQL Basics CIS 3730 Designing and Managing Data J.G. Zheng Fall 2010 1 Overview Using Structured Query Language (SQL) to get the data you want from relational databases Learning basic
More informationWorkflow Conductor Widgets
Workflow Conductor Widgets Workflow Conductor widgets are the modular building blocks used to create workflows in Workflow Conductor Studio. Some widgets define the flow, or path, of a workflow, and others
More informationOracle Database: Introduction to SQL
Oracle University Contact Us: +381 11 2016811 Oracle Database: Introduction to SQL Duration: 5 Days What you will learn Understanding the basic concepts of relational databases ensure refined code by developers.
More informationStructured Query Language. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics
Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics Structured Query Language HANS- PETTER HALVORSEN, 2014.03.03 Faculty of Technology, Postboks 203,
More informationCOMP 5138 Relational Database Management Systems. Week 5 : Basic SQL. Today s Agenda. Overview. Basic SQL Queries. Joins Queries
COMP 5138 Relational Database Management Systems Week 5 : Basic COMP5138 "Relational Database Managment Systems" J. Davis 2006 5-1 Today s Agenda Overview Basic Queries Joins Queries Aggregate Functions
More informationQuerying Microsoft SQL Server 20461C; 5 days
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc Querying Microsoft SQL Server 20461C; 5 days Course Description This 5-day
More informationSQL Simple Queries. Chapter 3.1 V3.0. Copyright @ Napier University Dr Gordon Russell
SQL Simple Queries Chapter 3.1 V3.0 Copyright @ Napier University Dr Gordon Russell Introduction SQL is the Structured Query Language It is used to interact with the DBMS SQL can Create Schemas in the
More informationGuide to SQL Programming: SQL:1999 and Oracle Rdb V7.1
Guide to SQL Programming: SQL:1999 and Oracle Rdb V7.1 A feature of Oracle Rdb By Ian Smith Oracle Rdb Relational Technology Group Oracle Corporation 1 Oracle Rdb Journal SQL:1999 and Oracle Rdb V7.1 The
More informationIntroducing Microsoft SQL Server 2012 Getting Started with SQL Server Management Studio
Querying Microsoft SQL Server 2012 Microsoft Course 10774 This 5-day instructor led course provides students with the technical skills required to write basic Transact-SQL queries for Microsoft SQL Server
More informationINTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,
More informationOracle Database: Introduction to SQL
Oracle University Contact Us: 1.800.529.0165 Oracle Database: Introduction to SQL Duration: 5 Days What you will learn View a newer version of this course This Oracle Database: Introduction to SQL training
More informationAras Corporation. 2005 Aras Corporation. All rights reserved. Notice of Rights. Notice of Liability
Aras Corporation 2005 Aras Corporation. All rights reserved Notice of Rights All rights reserved. Aras Corporation (Aras) owns this document. No part of this document may be reproduced or transmitted in
More informationMicrosoft Access 2007 Module 1
Microsoft Access 007 Module http://pds.hccfl.edu/pds Microsoft Access 007: Module August 007 007 Hillsborough Community College - Professional Development and Web Services Hillsborough Community College
More informationSAP Data Services 4.X. An Enterprise Information management Solution
SAP Data Services 4.X An Enterprise Information management Solution Table of Contents I. SAP Data Services 4.X... 3 Highlights Training Objectives Audience Pre Requisites Keys to Success Certification
More informationMICROSOFT OFFICE ACCESS 2007 - LEVEL 2
MICROSOFT OFFICE 2007 MICROSOFT OFFICE ACCESS 2007 - LEVEL 2 Modifying Tables Setting Field Properties Using Operators in Queries Designing Advanced Queries Creating Action Queries Using Advanced Query
More informationThe Relational Model. Why Study the Relational Model? Relational Database: Definitions. Chapter 3
The Relational Model Chapter 3 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Why Study the Relational Model? Most widely used model. Vendors: IBM, Informix, Microsoft, Oracle, Sybase,
More informationSQL Server 2008 Core Skills. Gary Young 2011
SQL Server 2008 Core Skills Gary Young 2011 Confucius I hear and I forget I see and I remember I do and I understand Core Skills Syllabus Theory of relational databases SQL Server tools Getting help Data
More informationINTRODUCTION TO MICROSOFT ACCESS MINIMAL MANUAL
University of Glasgow Department of Computing Science INTRODUCTION TO MICROSOFT ACCESS MINIMAL MANUAL 1 Databases in Access...2 2 The Database Window...2 3 Help...2 4 Saving...3 5 Wizards...3 6 Tables...3
More informationCreating Database Tables in Microsoft SQL Server
Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are
More informationEUROPEAN COMPUTER DRIVING LICENCE. Module AM5, Database, Advanced-Level
EUROPEAN COMPUTER DRIVING LICENCE Module AM5, Database, Advanced-Level Copyright 2002 The European Computer Driving Licence Foundation Ltd. All rights reserved. No part of this publication may be reproduced
More informationMicrosoft Access 2010 Part 1: Introduction to Access
CALIFORNIA STATE UNIVERSITY, LOS ANGELES INFORMATION TECHNOLOGY SERVICES Microsoft Access 2010 Part 1: Introduction to Access Fall 2014, Version 1.2 Table of Contents Introduction...3 Starting Access...3
More informationDatabase Administration with MySQL
Database Administration with MySQL Suitable For: Database administrators and system administrators who need to manage MySQL based services. Prerequisites: Practical knowledge of SQL Some knowledge of relational
More informationD61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:
D61830GC30 for Developers Summary Duration Vendor Audience 5 Days Oracle Database Administrators, Developers, Web Administrators Level Technology Professional Oracle 5.6 Delivery Method Instructor-led
More informationChapter 6 FOUNDATIONS OF BUSINESS INTELLIGENCE: DATABASES AND INFORMATION MANAGEMENT Learning Objectives
Chapter 6 FOUNDATIONS OF BUSINESS INTELLIGENCE: DATABASES AND INFORMATION MANAGEMENT Learning Objectives Describe how the problems of managing data resources in a traditional file environment are solved
More information