Professional Documents
Culture Documents
Data storage
Data was stored on punch cards and paper reels. Data was then stored on transistors. Data was then stored on magnetic tapes and discs. Data was then stored on storage Optical discs.
Punch cards Flat files Sequential files or text files. Indexed sequential files. Cluster - Virtual storage access method. Hierarchical database. Network Database. Relational database management system. Object relational database management system. Object oriented database management system.
5
In the late 1960s and early 1970s, there were two mainstream approaches to constructing DBMSs. The first approach was based on the hierarchical data model, typified by IMS (Information Management System) from IBM. The second approach was based on the network data model, which attempted to create a database standard and resolve some of the difficulties of the hierarchical model, such as its inability to represent complex relationship effectively. Together, these approaches represented the first generation of DBMSs.
6
In 1970, Codd produced his paper on the relational data model. This paper was very timely and addressed the disadvantages of the former approaches, in particular their lack of data independence. Many experimental relational DBMSs were implemented thereafter, with the first commercial products appearing in the late 1970s and early 1980s. Now there are over a hundred relational DBMSs for both mainframe and PC environments. Relational DBMSs are referred to as second-generation DBMSs.
7
However, as we discussed RDBMSs have their failings, particularly their limited modeling capabilities. There has been much research attempting to address this problem. In 1976, Chen presented the Entity-Relationship model that is now a widely accepted technique for database design. In 1979, Codd himself attempted to address some of the failings in his original work with an extended version of the relational model called RM/T (Codd, 1979), and more recently RM/V2 (Codd, 1990). The attempts to provide a data model that represents the 'real world' more closely have been loosely classified as Semantic data modeling.
8
In response to the increasing complexity of database applications, two 'new' data models have emerged: the Object-Oriented Data Model (OODM) and the ObjectRelational Data Model (ORDM), previously referred to as the Extended Relational Data Model (ERDM).
10
Object Oriented DataBase (OODB) When you integrate database capabilities with object programming language capabilities, the result is an object-oriented database management system or ODBMS. An ODBMS makes database objects appear as programming language objects in one or more existing programming languages. Object database management systems extend the object programming language with transparently persistent data, concurrency control, data recovery, associative queries, and other database capabilities.
Object oriented database (OODB) provides all the facilities associated with object oriented paradigm. It enables us to create classes, organize objects, structure an inheritance hierarchy and call methods of other classes. Besides these, it also provides the facilities associated with standard database systems. However, object oriented database systems 11 have not yet replaced the RDBMS in commercial business applications.
Following are the two different approaches for designing an objectoriented database: Designed to store, retrieve and manage objects created by programs written in some object oriented languages (OOL) such as C++ or java. Although a relational database can be used to store and manage objects, it does not understand objects as such. Therefore, a middle layer called object manager or object-oriented layer software is required to translate objects into tuples of a relation.
Designed to provide object-oriented facilities to users of non objectoriented programming languages (OOPLs) such as C or Pascal.
The user will create classes, objects, inheritance and so on and the database system will store and manage these objects and classes. This second approach, thus, turns non-OOPLs into OOPLs. A translation layer is required to map the objects created by user into objects of the database system.
12
Examples
Object Database (ODBMS) for Java, written entirely in Java, and compliant with the Java Data Objects (JDO) standard developed by Sun.
db4o is designed to be a simple, easy-to-use, and fast, native object database. Software developers using popular Java and .NET object-oriented frameworks know that using an object oriented databases is a more natural way to get work done. Developers have three ways to storing and retrieving data:
13
Advantages of OODBMSs
Extensibility OODBMSs allow new data types to be built from existing types. The ability to factor out common properties of several classes and form them into a superclass that can be shared with subclasses can greatly reduce redundancy within system Removal of impedance mismatch
A single language interface between the Data Manipulation Language (DML) and the programming language overcomes the impedance mismatch. This eliminates many of the inefficiencies that occur in mapping a declarative language such as SQL to an imperative language such as 'C'. Most OODBMSs provide a DML that is computationally complete compared with SQL, the standard language of 14 RDBMSs.
Navigational access from the object is the most common form of data access in an OODBMS. This is in contrast to the associative access of SQL Support for long-duration transactions
Current relational DBMSs enforce serializability on concurrent transactions to maintain database consistency. OODBMSs use a different protocol to handle the types of long-duration transaction that are common in many advanced database application. Applicability to advanced database applications There are many areas where traditional DBMSs have not been particularly successful, such as, Computer-Aided Design (CAD), CASE, Office Information Systems (OIS), and Multimedia Systems. The enriched modeling capabilities of OODBMSs have made them suitable 15 for these applications.
Improved performance
There have been a number of benchmarks that have suggested OODBMSs provide significant performance improvements over relational DBMSs. The results showed an average 30-fold performance improvement for the OODBMS over the RDBMS.
16
Disadvantages of OODBMSs
Lack of universal data model There is no universally agreed data model for an OODBMS, and most models lack a theoretical foundation. This disadvantage is seen as a significant drawback, and is comparable to pre-relational systems. Lack of experience In comparison to RDBMSs, the use of OODBMS is still relatively limited. This means that we do not yet have the level of experience that we have with traditional systems Lack of standards There is a general lack of standards of OODBMSs. We have already mentioned that there is not universally agreed data model. Similarly, there is no standard object-oriented query language. Competition Perhaps one of the most significant issues that face OODBMS vendors is the competition posed by the RDBMS and the emerging ORDBMS products. These products have an established user 17 base with significant experience available
Many OODBMSs use locking as the basis for concurrency control protocol.
Complexity The increased functionality provided by the OODBMS makes the system more complex than that of traditional DBMSs. Lack of support for views Currently, most OODBMSs do not provide a view mechanism,
18
19
Relational DBMSs are currently the dominant database technology. The OODBMS has also become the favored system for financial and telecommunications applications. Although the OODBMS market is still small. The OODBMS continues to find new application areas, such as the World Wide Web. Some industry analysts expect the market for the OODBMSs to grow at over 50% per year, a rate faster than the total database market. However, their sales are unlikely to overtake those of relational systems because of the wealth of businesses that find RDBMSs acceptable, and because businesses have invested so much money and resources in their development that change is prohibitive.
20
The choice of DBMS seemed to be between the relational DBMS and the object-oriented DBMS. However, many vendors of RDBMS products are conscious of the threat and promise of the OODBMS. They agree that traditional relational DBMSs are not suited to the advanced application. The most obvious way to remedy the shortcomings of the relational model is to extend the model with these types of feature. This is the approach that has been taken by many extended relational DBMSs, although each has implemented different combinations of features. Thus, there is no single extended relational model; rather, there are a variety of these models, whose characteristics depends upon the way and the degree to which extensions were made. However, all the models do share the same basic relational tables and query language, all incorporate some concept of 'object', and some have the ability to store methods (or procedures or triggers) as well as data in the database.
21
22
Advantages of ORDBMSs
Disadvantages of ORDBMSs
The ORDBMS approach has the obvious disadvantages of complexity and associated increased costs. Further, there are the proponents of the relational approach that believe the essential simplicity and purity of the relational model are lost with these types of extension. Performance Constraints Because the ORDBMS converts data between an object oriented format and RDBMS format, speed performance of the database is degraded substantially. This is due to the additional conversion work the database must do.
24
The strengths of the various kinds of database systems can be summarized as follows:
Relational systems: simple data types, powerful query languages, high protection. Persistent programming language based OODBs: complex data types, integration with programming language, high performance. Object-relational systems: complex data types, powerful query languages, high protection. These descriptions hold in general, but keep in mind that some database systems blur these boundaries. For example, some object-oriented database systems built around a persistent programming language are implemented on top of a relational database system. Such systems may provide lower performance than object-oriented database systems built directly on a storage system, but provide some of the stronger protection 25 guarantees of relational systems.
26
27
28
These new applications cannot be easily designed in RDBMS due to its following weaknesses.
29
Weaknesses of RDBMS
Other problems with RDBMSs is associated with concurrency, schema changes, and poor navigational access
30
For the purposes of discussion, consider the inheritance hierarchy which has a Staff superclass and three subclasses: Manager, SalesPersonnel, and Secretary.
31
Map each class or subclass to a relation Staff(staffNo, fName, IName, position, sex, DOB, salary)
Staff (staffNo, fName, IName, position, sex, DOB, salary, bonus, mgrStartDate, sales-Area, carAllowance, typingSpeed, typeFlag)
33
OORDBMS Approach The best solution of all above problems in Object Oriented Relational Database Management System. For example: In Oracle 8,we can create an object Staff in database and then we can create three different tables namely Manager, Salepersonnel and Secretary, each refer to object created Staff as one of its attribute. The whole process of designing the above database with syntax of Oracle 8 is explained here below: Creation of an object staff: CREATE TYPE staff AS OBJECT( staffno number(4) primary key, fname varchar(20), lname varchar(20), position varchar(10), sex varchar(1),DOB date,salary number(8,2);
34
The object staff can be referenced in table Manager as one of its attribute as shown below:
The object staff can be referenced in table Manager as one of its attribute as shown below:
mgrstartdate date);
36
staff_detail staff,
salearea varchar(25), carallowance number(7));
staff_detail staff,
typingspeed number(3));
37
An IBM survey conducted in 2010 revealed different technology trends by 2015. The survey garnered responses from more than 2,000 IT professionals worldwide with expertise in areas such as software testing, system and network administration, software architecture, and enterprise and web application development. There were two main findings from the survey: Cloud computing will overtake on-premise computing as the primary way organizations acquire IT resources. Mobile application development for devices such as iPhone and Android, and even tablet PCs like iPad and PlayBook, will surpass application development on other platforms.
38
Cloud computing
Cloud computing is not a new technology, but a new model to deliver IT resources. It gives the illusion that people can have access to an infinite amount of computing resources available on demand. With Cloud computing, you can rent computing power with no commitment. There is no need to buy a server, just pay for what you use. This new model is often compared with how people use and pay for utilities. For example, you only pay for how much water or electricity you consume for a given amount of time. Cloud computing has drastically altered the way computing resources are obtained, allowing almost everybody, from one-man companies, large enterprises to governments work on projects that could not have been possible before.
39
While in the traditional IT model you need to request budget to acquire hardware, and invest a large amount of money upfront; with the Cloud computing model, your expenses are considered operating expenses to run your business; you pay on demand a small amount per hour for the same resources. In the traditional IT model, requesting budget, procuring the hardware and software, installing it on a lab or data center, and configuring the software can take a long time. On average we could say a project could take 120 days or more to get started. With Cloud computing, you can have a working and configured system in less than 2 hours! In the traditional IT model companies need to plan for peak capacity. For example if your company's future workload requires 3 servers for 25 days of the month, but needs 2 more servers to handle the workload of the last 5 days of the month then the company needs to purchase 5 servers, not 3. In the Cloud computing model, the same company could 40 just invest on the 3 servers, and rent 2 more servers for the last 5 days of the month.
Standardization. - Standardization provides the ability to build a large set of homogeneous IT resources mostly from inexpensive components. Standardization is the opposite of customization. Virtualization - Virtualization provides a method for partitioning the large pool of IT resources and allocating them on demand. After use, the resources can be returned to the pool for others to reuse. Automation - Automation allows users on the Cloud to have control on the resources they provision without having to wait for administrator to handle their requests. This is important in a large Cloud environment.
41
Infrastructure as a Service (IaaS) - Infrastructure as a Service providers take care of your infrastructure (Data center, hardware, operating system) so you don't need to worry about these. Platform as a Service (PaaS) - Platform as a Services providers take care of your application platform or middleware. For example, in the case of IBM middleware products, a PaaS would take care of providing for a DB2 server, a WebSphere application server, and so on.
Software as a Service (SaaS) - Software as a Service providers take care of the application that you need to run. You can think of them as "application stores" where you go and rent applications you need by the hour. A typical example of a SaaS is Salesforce.com.
42
Amazon Web Services, or AWS, is the leading provider of public cloud infrastructure. AWS has data centers in four regions: US-East, US-West, Europe and Asia Pacific. Each region has multiple availability zones for improved business continuity.
With AWS you can select virtual servers, called Elastic Cloud compute (EC2) instances. These instances are Intel-based (32 and 64-bit), and can run Windows or Linux (numerous distributions) operating systems. Pick from the different pre-defined types of instances based on your need for CPU cores, memory and local storage.
44
Figure : Summarizes the different AWS EC2 instance types. Each type has a
different price per hour as documented at aws.amazon.com.
45
AWS has three choices: Instance storage. : Instance storage is included with your instance at no extra cost; however, data is not persistent which means that it would disappear if the instance crashes, or if you terminate it.
Simple Storage Service (S3). : S3 behaves like a filebased storage organized into buckets. You interact with it using http put and get requests. Elastic Block Storage (EBS). :EBS volumes can be treated as regular disks on a computer. It allows for persistent storage, and is ideal for databases.
46
Security ranks high when discussing the reasons why a company may not want to work on the public Cloud. The idea of having confidential data held by a third party Cloud provider is often seen as a security and privacy risk. While these concerns may be valid, Cloud computing has evolved and keeps evolving rapidly. Private clouds provide a way to reassure customers that their data is held safely on-premises. Hardware and software such as IBM Cloudburst and IBM WebSphere Cloudburst Appliance work hand-in-hand to let companies develop their own cloud. Companies such as Amazon and IBM offer virtual private cloud (VPC) services where servers are still located in the cloud providers data centers yet they are not accessible to the internet; security can be completely managed by the company's own security infrastructure and processes. Companies can also work with hybrid clouds where they can keep critical data in their private cloud, while data used for development or testing can be stored on the public cloud.
47
48
49
50
51
52
Originally, no translator was used to compile or assemble the first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system.
53
Second-generation programming language is a generational way to categorise assembly languages. The term was coined to provide a distinction from higher level third-generation programming languages (3GL) such as COBOL and earlier machine code languages. Second-generation programming languages have the following properties: The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called assembly. The language is specific to a particular processor family and environment. Second-generation languages are sometimes used in kernels and device drivers (though C is generally employed for this in modern kernels), but more often find use in extremely intensive processing such as games, video editing, graphic manipulation/rendering. One method for creating such code is by allowing a compiler to generate a machine-optimised assembly language version of a particular function. This code is then hand-tuned, gaining both the brute-force insight of the machine optimizing algorithm and the intuitive abilities of the human optimiser.
54
A third-generation programming language (3GL) is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly. This includes features like improved support for aggregate data types, and expressing concepts in a way that favours the programmer, not the computer (e.g. no longer needing to state the length of multi-character (string) literals in Fortran). A third generation language improves over a second generation language by having the computer take care of nonessential details, not the programmer. "High level language" is a synonym for third-generation programming language. First introduced in the late 1950s, Fortran, ALGOL, and COBOL are early examples of this sort of language. Most popular general-purpose languages today, such as C, C++, C#, Java, BASIC and Pascal, are also thirdgeneration languages. Most 3GLs support structured programming. A programming language such as C, FORTRAN, or Pascal enables a programmer to write programs that are more or less independent from a particular type of computer. Such languages are considered high-level because they are closer to human languages and further from machine languages. In contrast, assembly languages are considered low-level because they are very close to machine languages. The main advantage of high-level languages over low-level languages is that they are easier to read, write, and maintain. Ultimately, programs written in a high-level language must be translated into machine language by a compiler or interpreter. The first high-level programming languages were designed in the 1950s. Examples of high level languages are ALGOL, COBOL, FORTRAN, and Ada. These programs could run on different machines so they were machineindependent
55
The term fourth-generation programming language (1970s-1990) (abbreviated 4GL) is better understood to be a fourth generation environment; packages of systems development software including very high level programming languages. A very high level programming language and a development environment or 'Analyst Workbench' designed with a central data dictionary system, a library of loosely coupled design patterns, a CRUD generator, report generator, end-user query language, DBMS, visual design tool and integration API. Historically often used for prototyping and evolutionary development of commercial business software. In the history of computer science, the 4GL followed the 3GL in an upward trend toward higher abstraction and statement power. The 4GL was followed by efforts to define and use a 5GL. The natural-language, block-structured mode of the third-generation programming languages improved the process of software development. However, 3GL development methods can be slow and error-prone. It became clear that some applications could be developed more rapidly by adding a higher-level programming language and methodology which would generate the equivalent of very complicated 3GL instructions with fewer errors. In some senses, software engineering arose to handle 3GL development. 4GL and 5GL projects are more oriented toward problem solving and systems engineering. All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. They are not always successful in this task, sometimes resulting in inelegant and un maintainable code. However, given the right problem, the use of an appropriate 4GL can be spectacularly successful as was seen with MARK-IV and MAPPER. The usability improvements obtained by some 4GLs (and their environment) allowed better exploration for heuristic solutions than did the 3GL.
56
A fifth-generation programming language (abbreviated 5GL) is a programming language based on solving problems using constraints given to the program, rather than using an algorithm written by a programmer. Most constraint-based and logic programming languages and some declarative languages are fifth-generation languages. While fourth-generation programming languages are designed to build specific programs, fifth-generation languages are designed to make the computer solve a given problem without the programmer. This way, the programmer only needs to worry about what problems need to be solved and what conditions need to be met, without worrying about how to implement a routine or algorithm to solve them. Fifth-generation languages are used mainly in artificial intelligence research. Prolog, OPS5, and Mercury are examples of fifth-generation languages.
These types of languages were also built upon Lisp, many originating on the Lisp machine, such as ICAD. Then, there are many frame languages, such as KL-ONE.
In the 1980s, fifth-generation languages were considered to be the wave of the future, and some predicted that they would replace all other languages for system development, with the exception of low-level languages. Most notably, from 1982 to 1993 Japan put much research and money into their fifth generation computer systems project, hoping to design a massive computer network of machines using these tools. However, as larger programs were built, the flaws of the approach became more apparent. It turns out that starting from a set of constraints defining a particular problem, deriving an efficient algorithm to solve it is a very difficult problem in itself. This crucial step cannot yet be automated and still requires the insight of a human programmer. Today, fifth-generation languages are back as a possible level of computer language. A number of software vendors currently claim that their software meets the visual "programming" requirements of the 5GL concept.
57
Thanks
59