Mälardalen University The Department of Computer Science and Engineering CD5130 Object oriented programming, advanced cource

Size: px
Start display at page:

Download "Mälardalen University 2003-05-14 The Department of Computer Science and Engineering CD5130 Object oriented programming, advanced cource"

Transcription

1 Object databases Group 21 Thomas Bengtsson Per Bengtsson

2 Summary Object databases can be useful when storing complex data structures. The use of a consistent object model throughout the entire system development process can greatly simplify and speed up the development of new systems. The database can be queried using OQL, a query language based on SQL-92 with extensions for handling complex objects among other things. Using OQL the programmer can make use of object methods including polymorphism directly in the queries making OQL a very powerful tool.

3 Introduction This essay is to a large degree based on facts taken from the standard set by the ODMG (Object Data Management Group). As we have no experience with object databases we have no way of knowing to what extent these standards are followed by the current ODBMS vendors. The text is meant to be an introduction to object databases not a tutorial and as such it is far from being comprehensive. We will begin by introducing the relational database concepts as the reader will have to be somewhat knowledgeable about relational databases to be able to understand comparisons made between RDBMS's and ODBMS's. We will then proceed with the presentation of the ODBMS's, describing the advantages of using object databases, the object model the databases are based on and OQL, the query language used to query the databases. Short introduction to RDBMS The most widely used form of database today is the relational database (RDBMS). The RDBMS is based on tables of data using unique keys (such as social security numbers) to form relationships between these tables. This is meant as an introduction to relational databases and SQL for those who have not encountered them before. Table_PERSON pk_person_id first_name John last_name Doe Shoe_size 9 Favorite_color blue Each table has a primary key (several columns can be combined to form a primary key) to uniquely identify each record. In the table above the most probable key would be pk_person_id. This table can be related (connected) to other tables using the primary key of the PERSON table and a foreign key in another table. A foreign key has only one purpose, to relate to the primary key of another table. In the table below the value of the foreign key is the same as the primary key value of the table above. Table_CONTACT_INFO pk_info_id 1 tel_number cell_number john.doe@work contact_place work fk_person_id If there can only be one CONTACT_INFO for each PERSON then that relationship would be referred to as a 1:1 relationship. If it is possible for each PERSON to have more then one CONTACT _INFO then that relationship would be called a 1:N relationship. This is called the

4 relationships cardinality. When designing a relational database it is important to avoid N:N relationships (many to many). A relational database can consist of hundreds of tables or more. The image below is not nearly that large but should give you an idea of how a relational database looks. There is a lot to know about relational databases and we cannot possibly cover everything here. We will attempt to explain the different aspects of database development as we approach them from an object database perspective later in this report SQL To manipulate a database you need a tool, one way is to implement a dml (data manipulation language). Dml includes functionality for Insert new data into database Modification of data in database Retrieval of data from database Removal of data from database There are two dml types, procedural mdl and non-procedural mdl. In procedural mdl, all data manipulating is done in record-to-record manner and the user knows exactly how to retrieve a

5 record directly from the database. This means that you take a record and process it and then take the next record etc, this process repeats until the goal of the database operation is completed. In a non-procedural dml the DBMS lets the user state what data needs manipulating and how it should be manipulated. To be able to query a relational database a standardized query language has been developed called SQL (structured query language). SQL is one of the more common procedural mdl's to date. SQL has a long list of key words but this text will only explain a small subset of the keywords used in SQL. Select is a keyword that means we want to retrieve data from the database it states what is to be retrieved using parameters. Syntax: select xxx (where xxx is what we want to retrieve) Example: select car_id ; Or to put it in plain English: retrieve all car_id We cannot select anything if we do not specify from where the data is to be retrieved. That is where the next keyword comes in handy. From is another keyword used in SQL. From specifies from what set of records we would like to receive data. Syntax: from xxx (where xxx is a set of records) Example: select car_id from car; Or to put it in plain English: retrieve all car_id values from the table with the name car. Where is a keyword that limits the number of records the user retrieves by setting up a condition on every record, which must be met. Syntax: where xxx=yyy Example: select car_id from car where model= Volvo Or to it put it in plain English: retrieve all car_id values from the record set with the name car but only retrieve records that have the attribute model is set to Volvo. It is possible to join several sets of records to retrieve data from them. This also done using the "where" keyword. Syntax: where x.qqq = y.zzz Example: Select car_id, name from car c, person p where c.color = blue and p.favorite_color = blue Or to put it in plain English: This query lists car id's coupled with a persons name when the car's color matches the person's favorite color.

6 What is an ODBMS? An ODBMS (Object Database Management System) does not use tables to store data like a relational database. Instead the objects themselves are stored in the database. The relationships are not stored using primary and foreign keys but rather by maintaining the references objects have to each other. The remaining text in this paper will describe in a general fashion what an ODBMS is and to what use it can be put. Benefits of ODBMS's Mapping When a programmer using an object oriented language such as C++ needs to save his objects to a relational database (to make his objects persistent) he has to map the objects to fit the tables of the relational database. It takes significant time to write the code necessary for this mapping, and that additional code means that more bugs might be written into the code. Therefore using an object database would mean less code would have to be written, there would probably be fewer bugs and performance would increase as there would be no need to transform the data from tables into objects and back again. When an object database is being used the same object model is used to describe the transient objects in the computers memory (RAM) as the persistent objects stored in the ODBMS Scalability It is worth noting that a program written as a single user program could have a lot to gain from using an ODBMS rather than saving objects to a file. Many single user programs often later become multi user programs. If an ODBMS has been used to store the persistent objects then the data can easily be accessed by multiple users. The scalability of software is therefore much better when an ODBMS is used to manage the persistent data. Relations In an SQL database the data is stored in tables. When data is to be recovered from these tables it is often necessary to recreate the relationships between tables using joins in runtime. An ODBMS on the other hand can traverse the relationships between objects without the joins that are so detrimental to efficiency as the relational paths are stored in the objects. Likewise relationships between objects in the form of inheritance have to be restored should the data be stored in tables. In an ODBMS the persistent objects are stored in the same state as the transient objects eliminating the need for code to transform the data between the different states. Sequences Sequences (of events) can be stored in tables, but that would require a row to describe the time index of the events. If a RDBMS was used that would mean that the table would have to be

7 sorted to be of any use. Even if there are efficient sorting algorithms that can be implemented an object database has a better solution. An object that stores a sequence can store the data in a linked list thus providing good access to the data in a pre-sorted fashion. Handling sequences of this kind is important in several different applications such as storing medical data (EKG), Financial information (stock prices) etc. Storing complex data structures The performance of an ODBMS is far superior to a RDBMS in some cases. One way to illustrate this is to look at the part-subpart (possibly recursive) relation (has-a [1:1] or hasmany [1:N]). The part-subpart structure, just like any other tree-like data structure, is hard to represent in an effective way in a RDBMS. In a RDBMS this could be done using a recursive structure. The table part would contain a primary key part_id and a few other values to tie other parts to the part in question. (e.g. if each instance links to (up to) two other instances, the table part will have to use two columns to store the links, for example contains_part_id1 and contains_part_id2 ). For a piece of software to read the entire hierarchy into memory an extensive query would have to me made to traverse these relationships until the contains_part_id values are NULL. In an object database no queries would have to be made as the tree structure is preserved in the database. Since there is no need to recreate the original data structure performance is increased substantially. Storing objects storing methods When an ODBMS stores an object it stores the entire object including its data and its methods. This means that the objects can be used while still in the database. Thus operations can be executed in the database engine rather then in the application. This means that development of applications is easier because less code has to be written which makes bugs less likely and testing and future modification of the code easier. This is described in more detail under the heading OQL methods later in this paper. A single consistent object model In traditional system development different models and terms are used to describe the representation of data. In the system design phase flow charts might be used, the database designers might use ER-diagrams and the programmers might use pseudo code. When the

8 object-oriented approach is used a single object model can be used. UML could be used to describe the objects, the methods of the objects and the communication between objects. Programmers can use these UML diagrams directly when coding and the database could store the objects without the need to change them into another form such as tables. This simplification makes system development quicker as fewer transitions need to be made between models the OO approach also means less code as objects do not need to be transformed into tables and back. Less code means less bugs and speedier development.

9 The inner workings of an ODBMS The following description of the inner workings of ODBMS's is most probably not representative of all ODBMS's. This section is only meant to give the reader a general idea of how an ODBMS works. Accessing objects in the database An object database is treated much like a huge virtual memory. The application and the DB share a memory space called an object cache. The ODBMS is responsible for mapping pages from the database's secondary storage onto the virtual memory of the operating system (the object cache). When the application tries to access an object one of two things can happen. The object is in the object cache and is promptly accessed by the application. If the requested object is not in the cache the database will detect this and map a page from its secondary storage into a page in the object cache. If the object has references to other objects the addresses of these objects will be converted into virtual memory addresses so that the application can use them as programming language pointers. This process is called swizzeling. Swizzleing can be lazy, not loading pages into the object cache until they are requested, or eager, when all objects referenced by the originally fetched object are loaded into the object cache. The size of the object cache should be modified depending on which kind of swizzeling is being used, eager swizzeling requiring a larger cache size than lazy swizzeling. When the program terminates or the database needs to use the space in the object cache the DB copies the updated page back to secondary storage replacing the earlier version of it. The database can refer to objects on secondary storage using their physical address or using logical addresses (this way of introducing a level of indirection is called object-descriptor architecture). Physical addressing is practical when the database is small and updating and writing to the database is not frequent. On larger databases with frequent updates it is better to use logical addressing in stead. Using logical addressing introduces a layer of indirection, which causes a decrease in database performance. However when logical addresses are used it is a lot easier to move data to different parts of the database or network. This means that scalability is greatly improved. Also the use of logical addressing means that swizzeling is not necessary as relationships between objects can be traversed using the logical addresses. The database runtime is linked with the application rather then the two being totally separate processes. This coupled with the fact that the application and the DB share the object cache means that a significant increase in performance is possible as inter-process communication can be avoided. This integration is not possible if multiple clients need to be able to access the database. In such cases a client server approach is necessary. ODBMS use stubs that act as a proxy to the actual database. However when stubs are linked to the application, just as in the integration mentioned before, much of the performance benefits are lost as communication over the network is necessary between the stubs and the actual DB server.

10 Increasing performance The performance of object databases can be increased using methods common to RDBMS's. Most of these methods are implemented similarly to the way they would be in a RDBMS, such as tweaking of cache sizes, replication and the use of indexes. The implementation of clustering in ODBMS's deserve a few lines however. When an object not present in the object cache is requested the result is a page fault. The database detects this and loads the page with the requested object into to the object cache. It is possible to minimize the amount of page faults if objects are clustered intelligently, i.e. if objects that are likely to be used together are stored on the same page in secondary storage. This would mean less page faults resulting in less disc access. Clustering can be controlled automatically by the database based on access patterns or manually by the developer. Concurrency If several people are to share a single database it is important that they do not interfere with each other. If two people can access the same data at the same time then it is possible for inconstancies to creep into the database. Concurrency control means that the database makes sure that while the database is inconsistent, i.e. during a transaction, no one other then the current user can access the affected objects. Transactions Transactions are the basis for most database access. The point of a transaction is to be sure that either everything or nothing of what you want to do is carried out. Thus nothing is done until the transaction is completed by the commit command, whereby all changes are written to the persistent objects on secondary storage. Without the use of transactions a bank account could be debited for a transferal of funds without the receiving account ever being credited. There are several concepts in transaction handling that need to be described: Atomicity is the transaction concept stating that either everything in the transaction is done or nothing in the transaction is done. Constancy means that the database is carried from one consistent state to another. This means that although the database is by necessity inconsistent during a transaction it should always remain consistent before and after any transaction. Isolation means that all changes to a database remain invisible to other users until the transaction commits. Durability means that the results of any transaction should be preserved regardless of if processors, secondary storage devices or other hardware devices should fail. This can be accomplished trough the use of redo and undo log-files usually situated on a disk separate from the one(s) storing the database. Distributed transactions are transactions that cut across more then one database or process. According to the ODMG object databases can support distributed transactions. If they do

11 these transactions are transparent to the user and should be fully compliant with the ISO XA standard. Transactions within ODBMS's are handled by programming languages using the two types transactionfactory and transaction. Transactionfactory is used to create transaction objects. The transactionfactory has the following interface: interface TransactionFactory{ Transaction new(); Transaction current(); }; The transactionfactory creates transaction objects whose interface looks like this: interface Transaction{ void void void void void void boolean }; begin() raises(transactioninprogress, DatabaseClosed); commit() raises(transactionnotinprogress); abort() raises(transactionnotinprogress); checkpoint() raises(transactionnotinprogress); join() raises(transactionnotinprogress); leave() raises(transactionnotinprogress); isopen(); Locking To allow transactions to work properly access to object need to be tightly controlled. This is done by applying locks to objects to prevent others from modifying them in the middle of a transaction. The following locks can be acquired on objects in an object database: A read lock does not hinder anyone else from obtaining a read lock on an object but it does hinder others from writing to the object. A write lock grants exclusive access to the object with the purpose of editing the object. An upgrade lock does not prevent others from establishing a read lock but hinder others from obtaining a write lock. It is therefore a kind of lock useful for locking object you intend to write to later on. This should eliminate the risk of causing a deadlock where two transactions each wait for objects locked by the other transaction. This is of course dependant on that programmers always use update locks if they later intend to write to an object. All locks are by default held for the duration of the transaction.

12 Object model In a heterogeneous environment a common object model is required to facilitate interoperability. Therefore regardless of what programming language is being used the programmer must conform to the ODMG object model if s/he wants to be able to store objects in the database. The object model exists to...determine the characteristics of objects, how objects can be related to each other, and how objects can be named and identified (Cattell & Barry, 2000) Object creation Objects are created using an object factory. Separate object factories are supplied to programmers for each object type (collection objects etc). All object factories are derived from a super interface as seen in the image below.

13 Objects in the ODMG object model are subject to a hierarchy visualized by the image below. The object in the top of the hierarchy has an ODL (Object Definition Language) interface, which is passed down to all other objects interface Object{ enum void boolean boolean Object void }; Lock_Type{read, write, upgrade}; lock(in Lock_Type mode) raises(locknitgranted); try_lock(in Lock_Type mode); same_as(in Object anobject); copy(); delete(); copy(); makes a copy of an object. However the copy does not retain the object id of the original object. same_as(); is used to compare objects. If an object was copied using copy(); and then compared to the original using same_as();, same_as(); would not return TRUE because the copy is just a copy and has a different object identifier then the original. 1 Delete(); is used for deleting objects from the database. In addition to removing the object from the database delete(); will also purge the object from memory. 1 All objects have unique object identifiers which never change during the lifetime of an object. These identifiers are handled by the ODBMS, not the application. The way which object identifiers are implemented may vary between ODBMS vendors and is not something covered by the ODMG standard. Objects can also be given one or more names that are mapped onto the object. It is expected that names will be given to rot objects that are to be used as entry points into the database.

14 Lock(); attempts to get a lock on an object (read, write or update). The difference between lock and try lock is that lock causes an exception if the lock fails. Try_lock receives a boolean as a response as to whether or not the lock request was granted. Literals Literals are not objects but rather embedded in objects. There are several different types of literals namely atomic, collection, and structured literals. The atomic literals are numbers and characters. The atomic literals supported by the ODMG object model are as follows: long long long short unsigned long unsigned short float double boolean octet char string enum If the specific programming language used does not support one or more of these types then a class library shall be supplied as a part of the programming language binding. This class library is to define the implementation of the unsupported type(s). Collection literals are like collection objects. The collection literals however lack object identifiers. These collections can contain objects as well as literals. The supported collection literals are: set<t> bag<t> list<t> array<t> dictionary<t> Structured literals also referred to simply as structure(s) is a type that contains a predefined number of elements with predefined names. Each one of these elements can contain either a literal value or an object. The object model supports: date interval time timestamp

15 Developers can define structures of their own as well. This could be useful for example when an address is to be stored. Struct Address{ string street_name short street_number char entrance long zip_code string City }: Language bindings Each programming language has a language binding that defines a mapping between abstract classes [in the ODMG object model] and its language's implementation classes. In other words, there are separate sets of language binding for C++, Java, and Smalltalk. Each of these language bindings describe how that particular programming language should access object databases. There are also class libraries supplied to these bindings to facilitate programming. In this text we have chosen not to describe any of these bindings and instead focus on the database aspect of ODBMS's. (Cattell & Barry, 2000)

16 OQL Object Query Language OQL is the object database answer to SQL. It retains much of the look and feel of SQL as it is based on the SQL-92 standard extended to take into account thing such as complex objects, traversing of object relationships, polymorphism etc. It is therefore fairly easy for someone with experience of object oriented programming and SQL to learn the basics of OQL. Likewise for someone totally unfamiliar with SQL the OQL syntax can seem quite hard to understand. SQL queries are performed by selecting attributes from tables. OQL queries on the other hand are performed using names of objects or collections of objects as the entry point into the database. In the following example Students is the name of a collection referring to all the student objects in the database. OQL queries can return not only single objects but also collections of objects and more as described in the below examples. Query returning a collection of objects: Select x from Students x where x.age = 21 This query would return a collection of objects consisting of all student objects where the age attribute is 21. Query returning a single object: Select x from Students x where x.soc_security_nr = This query would return a single object - the student object with the stated social security number. Query returning a collection of literals: Select x.student_id_number from Students x where x.year_of_admition = 2003 This query would return a collection of literals listing the student id numbers of all students admitted during Query returning a single literal: An individual object can be given a name and as such literals contained within such an object may be accessed in the following way: Principal.emplyed_year The above query would return a literal, namely the value of the employed_year attribute of the object named principal. Navigating object relationships As previously stated it is common to use a named object as an entry point into the database, but this is of course not enough. It must be possible to traverse the relationships between objects in order to access the desired data. In OQL this is accomplished using the. or -> operator. In the below example the desired data is the network socket number in the apartment inhabited by student s. s.appartment.network.socket_nr

17 If we want to know what courses student s has completed then we could write the following query: select c.name from s.courses c This would return a collection of text strings with the names of the courses associated with student s. Using the where clause. The where clause can be used to restrict the result of a query to only the data that matches the condition imposed. In the below example only the addresses to students named Adam will be returned. Select s. from students s where s.name = Adam Boolean operators Boolean operators can be used in an OQL query to restrict the query. In addition to the usual AND, OR and NOT (can also be written!=), OQL also supports the use of ORELSE and ANDTHEN X ORELSE Y means that y will only be evaluated if x is false. X ANDTHEN Y means that x is evaluated and then Y. If X is false then Y is never evaluated. Joins Joins exist in OQL just like in SQL. With the aid of joins objects in different collections can be compared. Select x from Students s, Faculty f where s.date_of_birth = f.date_of_birth In the above example the students who share a birthday with someone in the faculty are selected. Undefined values Sometimes an attribute or a relation in an object is set to NULL. In the cases where that value is requested or that relationship is to be traversed the ODBMS returns the value UNDEFINED. To determine if a value is undefined the following two methods can be used: is_undefined(undefined) will return a value of TRUE is_defined(undefined) will return a value of FALSE

18 The following is an example of how to avoid getting a lot of UNDEFINED mixed up with your query results: Select s.shoe_size from students s where is_defined(s.shoe_size) This will return the shoe sizes of the students, but only those students for which shoe size has been defined. Methods Methods can be invoked using the same syntax as when accessing an attribute if the method does not have any parameters. If the method has parameters they are written in parentheses. Methods can only be invoked if they return the same type expected by the query. Select s.get_current_course.course_name from students s where s.student_id = The above example uses the method get_current_course() to return the current course for a particular student, that object is then traversed to find the name of that course. Polymorphism A powerful tool when programming in an object-oriented language is polymorphism. It allows the same message to be sent to several different objects that share a common super-object causing them to execute different methods (they each share the same method name and interface, but the implementation differs). In an object database polymorphism can be used the same way that methods are invoked. Other operators Other operators include sort by, group by, intersect, union, except, count, min, max, avg and more.

19 Concluding thoughts Object databases are not well known. They do seem to have valid uses and advantages to relational databases in certain situations. We believe that object databases will be more common in the future, but that they are currently held back mainly because computer professionals know very little about object databases and are very familiar with relational databases. Object databases might have a problem gaining acceptance and popularity if they cannot become more widely known. Unfortunately object databases seem to be caught in somewhat of a catch 22. They are not used because few people know about them or how to use them. And they will not be used unless people know about them and know how to use them (and when to use them). However, if ODBMS's become more widely known and used we believe that they can take significant market shares away from RDBMS's. Some of the literature used to research this subject in preparation for this paper is rather old (1995). Therefore some of the information taken from these older sources may not be totally accurate today. The purpose of this paper had been to give the reader a general idea of object databases, and should the reader's interest have been peaked then we strongly encourage the reader to read the ODMG 3.0 standard to get a more extensive view of object databases.

20 References Cattell, R. G. G, & Barry, D. K. (2000). The Object Data Standard: OMDG 3.0. Academic Press Loomis, Mary E. S. (1995) Object Databases: The Essentials. Addison-Wesley Connoly, T. & Begg, C. & Strachan, A. (1998) Database Systems A Practical Approach to Design Implementation, and Management. Addison Wesley

Object Oriented Database Management System for Decision Support System.

Object Oriented Database Management System for Decision Support System. International Refereed Journal of Engineering and Science (IRJES) ISSN (Online) 2319-183X, (Print) 2319-1821 Volume 3, Issue 6 (June 2014), PP.55-59 Object Oriented Database Management System for Decision

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

CHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY

CHAPTER 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 information

1. INTRODUCTION TO RDBMS

1. INTRODUCTION TO RDBMS Oracle For Beginners Page: 1 1. INTRODUCTION TO RDBMS What is DBMS? Data Models Relational database management system (RDBMS) Relational Algebra Structured query language (SQL) What Is DBMS? Data is one

More information

Should we use Object Database Management Systems?

Should we use Object Database Management Systems? Team: Yevgeniy Boyko Simon Galperin (team lead) Alexander Stepanov Position Paper Should we use Object Database Management Systems? Object-oriented database-management systems have place in development

More information

DBMS / Business Intelligence, SQL Server

DBMS / Business Intelligence, SQL Server DBMS / Business Intelligence, SQL Server Orsys, with 30 years of experience, is providing high quality, independant State of the Art seminars and hands-on courses corresponding to the needs of IT professionals.

More information

Complex Data and Object-Oriented. Databases

Complex Data and Object-Oriented. Databases Complex Data and Object-Oriented Topics Databases The object-oriented database model (JDO) The object-relational model Implementation challenges Learning objectives Explain what an object-oriented data

More information

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle 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 information

Oracle Database: SQL and PL/SQL Fundamentals

Oracle 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 information

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young 3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)

More information

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle 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 information

1 File Processing Systems

1 File Processing Systems COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.

More information

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff

Duration 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 information

INTRODUCTION TO DATABASE SYSTEMS

INTRODUCTION TO DATABASE SYSTEMS 1 INTRODUCTION TO DATABASE SYSTEMS Exercise 1.1 Why would you choose a database system instead of simply storing data in operating system files? When would it make sense not to use a database system? Answer

More information

Oracle Database: SQL and PL/SQL Fundamentals

Oracle 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 information

The first time through running an Ad Hoc query or Stored Procedure, SQL Server will go through each of the following steps.

The first time through running an Ad Hoc query or Stored Procedure, SQL Server will go through each of the following steps. SQL Query Processing The first time through running an Ad Hoc query or Stored Procedure, SQL Server will go through each of the following steps. 1. The first step is to Parse the statement into keywords,

More information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we

More information

Tune That SQL for Supercharged DB2 Performance! Craig S. Mullins, Corporate Technologist, NEON Enterprise Software, Inc.

Tune That SQL for Supercharged DB2 Performance! Craig S. Mullins, Corporate Technologist, NEON Enterprise Software, Inc. Tune That SQL for Supercharged DB2 Performance! Craig S. Mullins, Corporate Technologist, NEON Enterprise Software, Inc. Table of Contents Overview...................................................................................

More information

Oracle SQL. Course Summary. Duration. Objectives

Oracle 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 information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

Oracle Database Links Part 2 - Distributed Transactions Written and presented by Joel Goodman October 15th 2009

Oracle Database Links Part 2 - Distributed Transactions Written and presented by Joel Goodman October 15th 2009 Oracle Database Links Part 2 - Distributed Transactions Written and presented by Joel Goodman October 15th 2009 About Me Email: Joel.Goodman@oracle.com Blog: dbatrain.wordpress.com Application Development

More information

Database Administration with MySQL

Database 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 information

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy What is Data Virtualization? by Rick F. van der Lans, R20/Consultancy August 2011 Introduction Data virtualization is receiving more and more attention in the IT industry, especially from those interested

More information

5. CHANGING STRUCTURE AND DATA

5. CHANGING STRUCTURE AND DATA Oracle For Beginners Page : 1 5. CHANGING STRUCTURE AND DATA Altering the structure of a table Dropping a table Manipulating data Transaction Locking Read Consistency Summary Exercises Altering the structure

More information

Introduction to Object-Oriented and Object-Relational Database Systems

Introduction to Object-Oriented and Object-Relational Database Systems , Professor Uppsala DataBase Laboratory Dept. of Information Technology http://www.csd.uu.se/~udbl Extended ER schema Introduction to Object-Oriented and Object-Relational Database Systems 1 Database Design

More information

Files. Files. Files. Files. Files. File Organisation. What s it all about? What s in a file?

Files. Files. Files. Files. Files. File Organisation. What s it all about? What s in a file? Files What s it all about? Information being stored about anything important to the business/individual keeping the files. The simple concepts used in the operation of manual files are often a good guide

More information

12 File and Database Concepts 13 File and Database Concepts A many-to-many relationship means that one record in a particular record type can be relat

12 File and Database Concepts 13 File and Database Concepts A many-to-many relationship means that one record in a particular record type can be relat 1 Databases 2 File and Database Concepts A database is a collection of information Databases are typically stored as computer files A structured file is similar to a card file or Rolodex because it uses

More information

MS SQL Performance (Tuning) Best Practices:

MS SQL Performance (Tuning) Best Practices: MS SQL Performance (Tuning) Best Practices: 1. Don t share the SQL server hardware with other services If other workloads are running on the same server where SQL Server is running, memory and other hardware

More information

Toad for Data Analysts, Tips n Tricks

Toad for Data Analysts, Tips n Tricks Toad for Data Analysts, Tips n Tricks or Things Everyone Should Know about TDA Just what is Toad for Data Analysts? Toad is a brand at Quest. We have several tools that have been built explicitly for developers

More information

Overview RDBMS-ORDBMS- OODBMS

Overview RDBMS-ORDBMS- OODBMS Overview RDBMS-ORDBMS- OODBMS 1 Database Models Transition Hierarchical Data Model Network Data Model Relational Data Model ER Data Model Semantic Data Model Object-Relational DM Object-Oriented DM 2 Main

More information

14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:

14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to: 14 Databases 14.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define a database and a database management system (DBMS)

More information

Facebook Twitter YouTube Google Plus Website Email

Facebook Twitter YouTube Google Plus Website Email PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute

More information

David Dye. Extract, Transform, Load

David Dye. Extract, Transform, Load David Dye Extract, Transform, Load Extract, Transform, Load Overview SQL Tools Load Considerations Introduction David Dye derekman1@msn.com HTTP://WWW.SQLSAFETY.COM Overview ETL Overview Extract Define

More information

Performance Tuning for the Teradata Database

Performance Tuning for the Teradata Database Performance Tuning for the Teradata Database Matthew W Froemsdorf Teradata Partner Engineering and Technical Consulting - i - Document Changes Rev. Date Section Comment 1.0 2010-10-26 All Initial document

More information

Performance rule violations usually result in increased CPU or I/O, time to fix the mistake, and ultimately, a cost to the business unit.

Performance rule violations usually result in increased CPU or I/O, time to fix the mistake, and ultimately, a cost to the business unit. Is your database application experiencing poor response time, scalability problems, and too many deadlocks or poor application performance? One or a combination of zparms, database design and application

More information

XXI. Object-Oriented Database Design

XXI. Object-Oriented Database Design XXI. Object-Oriented Database Design Object-Oriented Database Management Systems (OODBMS) Distributed Information Systems and CORBA Designing Data Management Classes The Persistent Object Approach The

More information

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

D61830GC30. 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 information

DATABASE MANAGEMENT SYSTEMS. Question Bank:

DATABASE MANAGEMENT SYSTEMS. Question Bank: DATABASE MANAGEMENT SYSTEMS Question Bank: UNIT 1 1. Define Database? 2. What is a DBMS? 3. What is the need for database systems? 4. Define tupule? 5. What are the responsibilities of DBA? 6. Define schema?

More information

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS A technical white paper by: InterSystems Corporation Introduction Java is indisputably one of the workhorse technologies for application

More information

www.dotnetsparkles.wordpress.com

www.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 information

OBJECTS AND DATABASES. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21

OBJECTS AND DATABASES. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21 OBJECTS AND DATABASES CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21 Relational Model and 1NF 2 Relational model specifies that all attribute domains must be atomic A database

More information

Database Programming with PL/SQL: Learning Objectives

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 information

Introduction to Distributed Computing using CORBA

Introduction to Distributed Computing using CORBA Introduction to Distributed Computing using CORBA Rushikesh K. Joshi Dept of Computer Science & Engineering Indian Institute of Technology, Bombay Powai, Mumbai - 400 076, India. Email: rkj@cse.iitb.ac.in

More information

DATABASE MANAGEMENT SYSTEM PERFORMANCE ANALYSIS AND COMPARISON. Margesh Naik B.E, Veer Narmad South Gujarat University, India, 2008 PROJECT

DATABASE MANAGEMENT SYSTEM PERFORMANCE ANALYSIS AND COMPARISON. Margesh Naik B.E, Veer Narmad South Gujarat University, India, 2008 PROJECT DATABASE MANAGEMENT SYSTEM PERFORMANCE ANALYSIS AND COMPARISON Margesh Naik B.E, Veer Narmad South Gujarat University, India, 2008 PROJECT Submitted in partial satisfaction of the requirements for the

More information

Chapter 13 File and Database Systems

Chapter 13 File and Database Systems Chapter 13 File and Database Systems Outline 13.1 Introduction 13.2 Data Hierarchy 13.3 Files 13.4 File Systems 13.4.1 Directories 13.4. Metadata 13.4. Mounting 13.5 File Organization 13.6 File Allocation

More information

Chapter 13 File and Database Systems

Chapter 13 File and Database Systems Chapter 13 File and Database Systems Outline 13.1 Introduction 13.2 Data Hierarchy 13.3 Files 13.4 File Systems 13.4.1 Directories 13.4. Metadata 13.4. Mounting 13.5 File Organization 13.6 File Allocation

More information

Guide to SQL Programming: SQL:1999 and Oracle Rdb V7.1

Guide 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 information

Instant SQL Programming

Instant 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 information

CHAPTER 6: TECHNOLOGY

CHAPTER 6: TECHNOLOGY Chapter 6: Technology CHAPTER 6: TECHNOLOGY Objectives Introduction The objectives are: Review the system architecture of Microsoft Dynamics AX 2012. Describe the options for making development changes

More information

Oracle Database 10g Express

Oracle 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 information

Object-Oriented Databases Course Review

Object-Oriented Databases Course Review Object-Oriented Databases Course Review Exam Information Summary OODBMS Architectures 1 Exam Session examination Oral exam in English Duration of 15 minutes 2 Exam Basic Skills: Why, What, How Explain

More information

MySQL Storage Engines

MySQL Storage Engines MySQL Storage Engines Data in MySQL is stored in files (or memory) using a variety of different techniques. Each of these techniques employs different storage mechanisms, indexing facilities, locking levels

More information

What is Data Virtualization?

What is Data Virtualization? What is Data Virtualization? Rick F. van der Lans Data virtualization is receiving more and more attention in the IT industry, especially from those interested in data management and business intelligence.

More information

A basic create statement for a simple student table would look like the following.

A basic create statement for a simple student table would look like the following. Creating Tables A basic create statement for a simple student table would look like the following. create table Student (SID varchar(10), FirstName varchar(30), LastName varchar(30), EmailAddress varchar(30));

More information

Guide to Performance and Tuning: Query Performance and Sampled Selectivity

Guide to Performance and Tuning: Query Performance and Sampled Selectivity Guide to Performance and Tuning: Query Performance and Sampled Selectivity A feature of Oracle Rdb By Claude Proteau Oracle Rdb Relational Technology Group Oracle Corporation 1 Oracle Rdb Journal Sampled

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA www.sybex.com

2874CD1EssentialSQL.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 information

Object-persistence formats. Files. Object-oriented databases. Data management layer design. Relational databases. Relational Database Example.

Object-persistence formats. Files. Object-oriented databases. Data management layer design. Relational databases. Relational Database Example. Modelling and Systems Development Lecture 2 Data management layer design Mapping problem-domain objects to object-persistence formats Object-persistence formats Files Sequential and random-access Relational

More information

SQL Server. 2012 for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

SQL 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 information

Is ETL Becoming Obsolete?

Is ETL Becoming Obsolete? Is ETL Becoming Obsolete? Why a Business-Rules-Driven E-LT Architecture is Better Sunopsis. All rights reserved. The information contained in this document does not constitute a contractual agreement with

More information

A Brief Introduction to MySQL

A 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 information

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper. The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide

More information

Availability Digest. www.availabilitydigest.com. Raima s High-Availability Embedded Database December 2011

Availability Digest. www.availabilitydigest.com. Raima s High-Availability Embedded Database December 2011 the Availability Digest Raima s High-Availability Embedded Database December 2011 Embedded processing systems are everywhere. You probably cannot go a day without interacting with dozens of these powerful

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Firebird. Embedded SQL Guide for RM/Cobol

Firebird. Embedded SQL Guide for RM/Cobol Firebird Embedded SQL Guide for RM/Cobol Embedded SQL Guide for RM/Cobol 3 Table of Contents 1. Program Structure...6 1.1. General...6 1.2. Reading this Guide...6 1.3. Definition of Terms...6 1.4. Declaring

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Managing a Class Hierarchy with SQL in Matisse

Managing a Class Hierarchy with SQL in Matisse Managing a Class Hierarchy with SQL in Matisse A Technical Brief Matisse Software Inc. 2003 MATISSE SOFTWARE INC., ALL RIGHTS RESERVED. Matisse is a registered trademark of Matisse software Inc. Other

More information

Transaction Management in Distributed Database Systems: the Case of Oracle s Two-Phase Commit

Transaction Management in Distributed Database Systems: the Case of Oracle s Two-Phase Commit Transaction Management in Distributed Database Systems: the Case of Oracle s Two-Phase Commit Ghazi Alkhatib Senior Lecturer of MIS Qatar College of Technology Doha, Qatar Alkhatib@qu.edu.sa and Ronny

More information

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit

More information

2) What is the structure of an organization? Explain how IT support at different organizational levels.

2) What is the structure of an organization? Explain how IT support at different organizational levels. (PGDIT 01) Paper - I : BASICS OF INFORMATION TECHNOLOGY 1) What is an information technology? Why you need to know about IT. 2) What is the structure of an organization? Explain how IT support at different

More information

Database Systems. Lecture 1: Introduction

Database Systems. Lecture 1: Introduction Database Systems Lecture 1: Introduction General Information Professor: Leonid Libkin Contact: libkin@ed.ac.uk Lectures: Tuesday, 11:10am 1 pm, AT LT4 Website: http://homepages.inf.ed.ac.uk/libkin/teach/dbs09/index.html

More information

Oracle Database 12c: Introduction to SQL Ed 1.1

Oracle 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 information

Intro to Databases. ACM Webmonkeys 2011

Intro to Databases. ACM Webmonkeys 2011 Intro to Databases ACM Webmonkeys 2011 Motivation Computer programs that deal with the real world often need to store a large amount of data. E.g.: Weather in US cities by month for the past 10 years List

More information

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL

More information

Aras Corporation. 2005 Aras Corporation. All rights reserved. Notice of Rights. Notice of Liability

Aras 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 information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Week 1 Part 1: An Introduction to Database Systems. Databases and DBMSs. Why Use a DBMS? Why Study Databases??

Week 1 Part 1: An Introduction to Database Systems. Databases and DBMSs. Why Use a DBMS? Why Study Databases?? Week 1 Part 1: An Introduction to Database Systems Databases and DBMSs Data Models and Data Independence Concurrency Control and Database Transactions Structure of a DBMS DBMS Languages Databases and DBMSs

More information

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB) U III 1 Design Processes Design Axioms Class Design Object Storage Object Interoperability Design Processes: - o During the design phase the classes identified in OOA must be revisited with a shift in

More information

Oracle. Brief Course Content This course can be done in modular form as per the detail below. ORA-1 Oracle Database 10g: SQL 4 Weeks 4000/-

Oracle. Brief Course Content This course can be done in modular form as per the detail below. ORA-1 Oracle Database 10g: SQL 4 Weeks 4000/- Oracle Objective: Oracle has many advantages and features that makes it popular and thereby makes it as the world's largest enterprise software company. Oracle is used for almost all large application

More information

Introduction to Microsoft Jet SQL

Introduction 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 information

Overview of Data Management

Overview of Data Management Overview of Data Management Grant Weddell Cheriton School of Computer Science University of Waterloo CS 348 Introduction to Database Management Winter 2015 CS 348 (Intro to DB Mgmt) Overview of Data Management

More information

Oracle Database 10g: Introduction to SQL

Oracle 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 information

BCA. Database Management System

BCA. Database Management System BCA IV Sem Database Management System Multiple choice questions 1. A Database Management System (DBMS) is A. Collection of interrelated data B. Collection of programs to access data C. Collection of data

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

Oracle Total Recall with Oracle Database 11g Release 2

Oracle Total Recall with Oracle Database 11g Release 2 An Oracle White Paper September 2009 Oracle Total Recall with Oracle Database 11g Release 2 Introduction: Total Recall = Total History... 1 Managing Historical Data: Current Approaches... 2 Application

More information

Raima Database Manager Version 14.0 In-memory Database Engine

Raima Database Manager Version 14.0 In-memory Database Engine + Raima Database Manager Version 14.0 In-memory Database Engine By Jeffrey R. Parsons, Senior Engineer January 2016 Abstract Raima Database Manager (RDM) v14.0 contains an all new data storage engine optimized

More information

Microsoft Access 3: Understanding and Creating Queries

Microsoft 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 information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Revolutionized DB2 Test Data Management

Revolutionized DB2 Test Data Management Revolutionized DB2 Test Data Management TestBase's Patented Slice Feature Provides a Fresh Solution to an Old Set of DB2 Application Testing Problems The challenge in creating realistic representative

More information

SCADA Questions and Answers

SCADA Questions and Answers SCADA Questions and Answers By Dr. Jay Park SCADA System Evaluation Questions Revision 4, October 1, 2007 Table of Contents SCADA System Evaluation Questions... 1 Revision 4, October 1, 2007... 1 Architecture...

More information

Data Mining Commonly Used SQL Statements

Data Mining Commonly Used SQL Statements Description: Guide to some commonly used SQL OS Requirement: Win 2000 Pro/Server, XP Pro, Server 2003 General Requirement: You will need a Relational Database (SQL server, MSDE, Access, Oracle, etc), Installation

More information

SnapLogic Salesforce Snap Reference

SnapLogic Salesforce Snap Reference SnapLogic Salesforce Snap Reference Document Release: October 2012 SnapLogic, Inc. 71 East Third Avenue San Mateo, California 94401 U.S.A. www.snaplogic.com Copyright Information 2012 SnapLogic, Inc. All

More information

ICOM 6005 Database Management Systems Design. Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001

ICOM 6005 Database Management Systems Design. Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001 ICOM 6005 Database Management Systems Design Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001 Readings Read Chapter 1 of text book ICOM 6005 Dr. Manuel

More information

Bridge from Entity Relationship modeling to creating SQL databases, tables, & relations

Bridge from Entity Relationship modeling to creating SQL databases, tables, & relations 1 Topics for this week: 1. Good Design 2. Functional Dependencies 3. Normalization Readings for this week: 1. E&N, Ch. 10.1-10.6; 12.2 2. Quickstart, Ch. 3 3. Complete the tutorial at http://sqlcourse2.com/

More information

Database System Architecture & System Catalog Instructor: Mourad Benchikh Text Books: Elmasri & Navathe Chap. 17 Silberschatz & Korth Chap.

Database System Architecture & System Catalog Instructor: Mourad Benchikh Text Books: Elmasri & Navathe Chap. 17 Silberschatz & Korth Chap. Database System Architecture & System Catalog Instructor: Mourad Benchikh Text Books: Elmasri & Navathe Chap. 17 Silberschatz & Korth Chap. 1 Oracle9i Documentation First-Semester 1427-1428 Definitions

More information

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World COSC 304 Introduction to Systems Introduction Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca What is a database? A database is a collection of logically related data for

More information

Standard for Object Databases

Standard for Object Databases The ODMG Standard for Object Databases Francois Bancilhon and Guy Ferran OaTechnology 2685 Marine Way-Suite 1220 Mountain View, California 94043 Research on object databases started at the beginning of

More information

Database Management. Chapter Objectives

Database Management. Chapter Objectives 3 Database Management Chapter Objectives When actually using a database, administrative processes maintaining data integrity and security, recovery from failures, etc. are required. A database management

More information

THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS

THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS THE EVOLVING ROLE OF DATABASE IN OBJECT SYSTEMS William Kent Database Technology Department Hewlett-Packard Laboratories Palo Alto, California kent@hpl.hp.com 1990 CONTENTS: ABSTRACT 1 INTRODUCTION...

More information

Teamstudio USER GUIDE

Teamstudio USER GUIDE Teamstudio Software Engineering Tools for IBM Lotus Notes and Domino USER GUIDE Edition 30 Copyright Notice This User Guide documents the entire Teamstudio product suite, including: Teamstudio Analyzer

More information