1 EinführungSchedule: Timing Topic60 minutes Lecture60 minutes Total
2 Datenspeicherung auf unterschiedl. Medien SALGRADEGRADE LOSAL HISALDEPTDEPTNO DNAME LOCACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTONDatenbankSpreadsheet(Excel)KarteikartenStoring InformationEvery organization has some information needs. A library keeps a list of members, books, due dates, and fines. A company needs to save information about employees, departments, and salaries. These pieces of information are called data.Organizations can store data on various media and in different formats—for example, a hard-copy document in a filing cabinet or data stored in electronic spreadsheets or in databases.A database is an organized collection of information.To manage databases, you need database management systems (DBMS). A DBMS is a program that stores, retrieves, and modifies data in the database on request. There are four main types of databases: hierarchical, network, relational, and more recently object relational.Note: Oracle7 is a relational database management system and Oracle8 is an object relational database management system.
3 Relationales Datenmodell Codd erfand des relationale Modell für Datenbanksysteme 1970.Es ist die Basis für Relationale Datenbank- Management-Systeme (RDBMS).Relationales Modell besteht aus:Relationen (Tabellen)Operationen auf den RelationenDatenintegrität für Korrektheit und Konsistenz der DatenRelational ModelThe principles of the relational model were first outlined by Dr. E. F. Codd in a June 1970 paper called “A Relational Model of Data for Large Shared Data Banks.” In this paper, Dr. Codd proposed the relational model for database systems.The more popular models used at that time were hierarchical and network, or even simple flat file data structures. Relational database management systems (RDBMS) soon became very popular, especially for their ease of use and flexibility in structure. In addition, a number of innovative vendors, such as Oracle, supplemented the RDBMS with a suite of powerful application development and user products, providing a total solution.Components of the Relational ModelCollections of objects or relations that store the dataA set of operators that can act on the relations to produce other relationsData integrity for accuracy and consistencyFor more information, see E. F. Codd, The Relational Model for Database Management Version 2 (Reading, Mass.: Addison-Wesley, 1990).
4 Definition einer Relationalen Datenbank Eine relationale Datenbank ist eine Menge von Relationen (d.h. zweidimensionalen Tabellen).DatabaseEMPNO ENAME JOB DEPTNOKING PRESIDENTBLAKE MANAGERCLARK MANAGERJONES MANAGERTable Name: EMPDEPTNO DNAME LOC10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTONTable Name: DEPTDefinition of a Relational DatabaseA relational database uses relations or two-dimensional tables to store information.For example, you might want to store information about all the employees in your company. In a relational database, you create several tables to store different pieces of information about your employees, such as an employee table, a department table, and a salary table.
5 Daten-Modelle Server Modell des Anwenders (Objekte, Beziehungen) Entity-Relationship- ModellTabellenmodellaus dem Entity-ModellServerData ModelsModels are a cornerstone of design. Engineers build a model of a car to work out any details before putting it into production. In the same manner, system designers develop models to explore ideas and improve the understanding of the database design.Purpose of ModelsModels help communicate the concepts in people’s minds. They can be used to do the following:CommunicateCategorizeDescribeSpecifyInvestigateEvolveAnalyzeImitateThe objective is to produce a model that fits a multitude of these uses, can be understood by an end user, and contains sufficient detail for a developer to build a database system.Gespeicherte Tabellen in der DB
6 Entity-Relationship-Modell Erzeuge ein Entity-Relationship-Diagram aus Business-Spezifikation oder InterviewsSzenario“. . . Ordne einen oder mehr Angestellte einer Abteilung zu . . .”“. . . Einige Abteilungen haben noch keine Angestellten. . .”EMPLOYEE#* number* nameo job titleDEPARTMENT#* number* nameo locationgehört zubesteht ausER ModelingIn an effective system, data is divided into discrete categories or entities. An entity relationship (ER) model is an illustration of various entities in a business and the relationships between them. An ER model is derived from business specifications or narratives and built during the analysis phase of the system development life cycle. ER models separate the information required by a business from the activities performed within a business. Although businesses can change their activities, the type of information tends to remain constant. Therefore, the data structures also tend to be constant.Benefits of ER ModelingDocuments information for the organization in a clear, precise formatProvides a clear picture of the scope of the information requirementProvides an easily understood pictorial map for the database designOffers an effective framework for integrating multiple applicationsKey ComponentsEntity: A thing of significance about which information needs to be known. Examples are departments, employees, and orders.Attribute: Something that describes or qualifies an entity. For example, for the employee entity, the attributes would be the employee number, name, job title, hire date, department number, and so on. Each of the attributes is either required or optional. This state is called optionality.Relationship: A named association between entities showing optionality and degree. Examples are employees and departments, and orders and items.
7 Entity Relationship Festlegungen ViereckEindeutiger NameGroßbuchstabenSynonym in KlammernAttributeeinzelner NameKleinbuchstabenPflichtfelder markiert mit “*”Optional markiert mit “o”EMPLOYEE#* number* nameo job titleDEPARTMENT#* number* nameo locationassigned tocomposed ofEntitiesTo represent an entity in a model, use the following conventions:Soft box with any dimensionsSingular, unique entity nameEntity name in uppercaseOptional synonym names in uppercase within parentheses: ( )AttributesTo represent an attribute in a model, use the following conventions:Use singular names in lowercaseTag mandatory attributes, or values that must be known, with an asterisk: *Tag optional attributes, or values that may be known, with the letter oRelationshipsUnique Identifier (UID)Eindeutiger Identifikator (wird zu Schlüssel)Primärschlüssel markiert mit “#”Sekundärschlüssel markiert mit “(#)”
8 Terminologie Relationaler Datenbanken 234EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO7839 KING PRESIDENT NOV7698 BLAKE MANAGER MAY7782 CLARK MANAGER JUN7566 JONES MANAGER APR7654 MARTIN SALESMAN SEP7499 ALLEN SALESMAN FEB7844 TURNER SALESMAN SEP7900 JAMES CLERK DEC7521 WARD SALESMAN FEB7902 FORD ANALYST DEC7369 SMITH CLERK DEC7788 SCOTT ANALYST DEC7876 ADAMS CLERK JAN7934 MILLER CLERK JAN65Terminology Used in a Relational DatabaseA relational database can contain one or many tables. A table is the basic storage structure of an RDBMS. A table holds all the data necessary about something in the real world—for example, employees, invoices, or customers.The slide shows the contents of the EMP table or relation. The numbers indicate the following:1. A single row or tuple representing all data required for a particular employee. Each row in a table should be identified by a primary key, which allows no duplicate rows. The order of rows is insignificant; specify the row order when the data is retrieved.2. A column or attribute containing the employee number, which is also the primary key. The employee number identifies a unique employee in the EMP table. A primary key must contain a value.3. A column that is not a key value. A column represents one kind of data in a table; in the example, the job title of all the employees. Column order is insignificant when storing data; specify the column order when the data is retrieved.4. A column containing the department number, which is also a foreign key. A foreign key is a column that defines how tables relate to each other. A foreign key refers to a primary key or a unique key in another table. In the example, DEPTNO uniquely identifies a department in the DEPT table.5. A field can be found at the intersection of a row and a column. There can be only one value in it.6. A field may have no value in it. This is called a null value. In the EMP table, only employees who have a role of salesman have a value in the COMM (commission) field.Note: Null values are covered further in subsequent lessons.1
9 Verknüpfung mehrerer Tabellen Jede Datenzeile einer Tabelle wird eindeutig identifiziert durch einen Primärschlüssel.Daten aus mehreren Tabellen können logisch verknüpft werden mit Fremdschlüsseln.Table Name: EMPTable Name: DEPTEMPNO ENAME JOB DEPTNOKING PRESIDENTBLAKE MANAGERCLARK MANAGERJONES MANAGERDEPTNO DNAME LOC10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTONRelating Multiple TablesEach table contains data that describes exactly one entity. For example, the EMP table contains information about employees. Categories of data are listed across the top of each table, and individual cases are listed below. Using a table format, you can readily visualize, understand, and use information.Because data about different entities is stored in different tables, you may need to combine two or more tables to answer a particular question. For example, you may want to know the location of the department where an employee works. In this scenario, you need information from the EMP table (which contains data about employees) and the DEPT table (which contains information about departments). An RDBMS enables you to relate the data in one table to the data in another by using the foreign keys. A foreign key is a column or a set of columns that refer to a primary key in the same table or another table.The ability to relate data in one table to data in another enables you to organize information in separate, manageable units. Employee data can be kept logically distinct from department data by storing it in a separate table.Guidelines for Primary Keys and Foreign KeysNo duplicate values are allowed in a primary key.Primary keys generally cannot be changed.Foreign keys are based on data values and are purely logical, not physical, pointers.A foreign key value must match an existing primary key value or unique key value, or else be null.PrimärschlüsselFremdschlüssel
10 Eigenschaften Relationaler Datenbanken Eine relationale DatenbankKann gelesen und modifiziert werden durch SQL-Befehle (SQL = Structured Query Language).Enthält eine Menge von Tabellen, die physisch nicht verzeigert sind.Nutzt eine Menge von Operatoren.Properties of a Relational DatabaseIn a relational database, you do not specify the access route to the tables, and you do not need to know how the data is arranged physically.To access the database, you execute a structured query language (SQL) statement, which is the American National Standards Institute (ANSI) standard language for operating upon relational databases. The language contains a large set of operators for partitioning and combining relations. The database can be modified by using the SQL statements.
11 Kommunikation mit einem RDBMS mittels SQL SQL> SELECT loc2 FROM dept;SQL Statement wird eingegebenStatement wird zur Datenbank geschicktDatenbankLOCNEW YORKDALLASCHICAGOBOSTONErgebnis-AnzeigeStructured Query LanguageSQL allows you to communicate with the server and has the following advantages:EfficientEasy to learn and useFunctionally complete (SQL allows you to define, retrieve, and manipulate data in the tables.)
12 Relationales Datenbank- Management-System ServerRelational Database Management SystemOracle provides a flexible RDBMS called Oracle7. Using its features, you can store and manage data with all the advantages of a relational structure plus PL/SQL, an engine that provides you with the ability to store and execute program units. The server offers the options of retrieving data based on optimization techniques. It includes security features that control how a database is accessed and used. Other features include consistency and protection of data through locking mechanisms.Oracle applications may run on the same computer as the Oracle Server. Alternatively, you can run applications on a system local to the user and run the Oracle Server on another system (client-server architecture). In this client-server environment, a wide range of computing resources can be used. For example, a form-based airline reservation application can run on a client personal computer while accessing flight data that is conveniently managed by an Oracle Server on a central computer.For more information, see Oracle Server Concepts Manual, Release 8.Benutzer-TabellenDataDictionary
13 Einordnung Oracle SQL PL/SQL Anwendungen Oracle Developer Personal Finanzbuchh.Produktion...Oracle DeveloperDiscovererOracle DesignerSQLPL/SQLSQL* PlusOracle Complete SolutionThe Oracle relational database management system is the Oracle core product. It includes the Oracle Server and several tools intended to assist the users in the maintenance, monitoring, and actual use of the data. The Oracle data dictionary is one of the most important components of the Server. It consists of a set of tables and views that provide a read-only reference to the database.The RDBMS handles tasks such as the following:Managing the storage and definition of dataControlling and restricting data access and concurrencyProviding backup and recoveryInterpreting SQL and PL/SQL statementsNote: PL/SQL is an Oracle procedural language that extends SQL by adding application logic.SQL and PL/SQL statements are used by all programs and users to access and manipulate data stored in the Oracle database. Using application programs, you often can access the database without directly using SQL or PL/SQL, because you may press a button or select a check box, for example, but the applications implicitly use SQL or PL/SQL when executing the request.SQL*Plus is an Oracle tool that recognizes and submits SQL and PL/SQL statements to the server for execution and contains its own command language.Oracle offers a wide variety of state-of-the-art graphical, user interface (GUI) driven tools to build business applications as well as a large suite of software applications for many areas of business and industries.Note: More about the Oracle data dictionary is covered in subsequent lessons.Oracle7/8DatenbankData DictionaryDatentabellen
14 SQL Statements SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATECOMMITROLLBACKSAVEPOINTGRANTREVOKELesen von Daten (Retrieval)Datenmanipulation (DML)Datendefinition (DDL)SQL StatementsOracle SQL complies with industry-accepted standards. Oracle Corporation ensures future compliance with evolving standards by actively involving key personnel in SQL standards committees. Industry-accepted committees are the American National Standards Institute (ANSI) and the International Standards Organization (ISO). Both ANSI and ISO have accepted SQL as the standard language for relational databases.TransaktionskontrolleZugriffskontrolle
15 Was ist PL/SQL?PL/SQL ist eine Erweiterung zu SQL mit Merkmalen einer Programmiersprache.Datenmanipulation und Anfragen von SQL sind in prozeduralen Code eingebettet.About PL/SQLProcedural Language/SQL (PL/SQL) is Oracle Corporation’s procedural language extension to SQL, the standard data access language for object-relational databases. PL/SQL offers modern software engineering features such as data encapsulation, exception handling, information hiding, and object orientation, and so brings state-of-the-art programming to the Oracle Server and Toolset.PL/SQL incorporates many of the advanced features made in programming languages designed during the 1970s and 1980s. It allows the data manipulation and query statements of SQL to be included in block-structured and procedural units of code, making PL/SQL a powerful transaction processing language. With PL/SQL, you can use SQL statements to finesse Oracle data and PL/SQL control statements to process the data.
16 SQL Statement Executor PL/SQL EnvironmentPL/SQL EnginePL/SQLProceduralStatementExecutorPL/SQLBlockPL/SQLBlockSQLPL/SQL Engine and the Oracle ServerPL/SQL is not an Oracle product in its own right; it is a technology employed by the Oracle Server and by certain Oracle tools. Blocks of PL/SQL are passed to and processed by a PL/SQL engine, which may reside within the tool or within the Oracle Server. The engine used depends on where the PL/SQL block is being invoked.When you submit PL/SQL blocks from a Pro* program, user-exit, SQL*Plus, or Server Manager, the PL/SQL engine in the Oracle Server processes them. It divides the SQL within the block into separate statements and sends them to the SQL Statement Executor. This means that a single transfer is required to send the block from the application to the Oracle Server, thus improving performance, especially in a client-server network. Stored subprograms can be referenced by any number of applications connected to the database.SQL Statement ExecutorOracle Server
17 Tabellen in diesem Kurs EMPEMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO7839 KING PRESIDENT NOV7698 BLAKE MANAGER MAY7782 CLARK MANAGER JUN7566 JONES MANAGER APR7654 MARTIN SALESMAN SEP7499 ALLEN SALESMAN FEB7844 TURNER SALESMAN SEP7900 JAMES CLERK DEC7521 WARD SALESMAN FEB7902 FORD ANALYST DEC7369 SMITH CLERK DEC7788 SCOTT ANALYST DEC7876 ADAMS CLERK JAN7934 MILLER CLERK JANDEPTDEPTNO DNAME LOCACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTONGRADE LOSAL HISALSALGRADETables Used in the CourseThe following three tables will be used in this course:EMP table, which gives details of all the employeesDEPT table, which gives details of all the departmentsSALGRADE table, which gives details of salaries for various gradesThe structure and data for all the tables is given in Appendix B.
18 ZusammenfassungRelationale Datenbanken bestehen aus Relationen, die durch relationale Operationen verwaltet werden und auf denen Integritätsbedingungen definiert sind.Der Oracle Server erlaubt die Speicherung und Verwaltung von Daten über die Sprache SQL zusammen mit PL/SQL.PL/SQL ist eine Erweiterung zu SQL mit Eigenschaften einer Programmiersprache.SummaryRelational database management systems are composed of objects or relations. They are managed by operations and governed by data integrity constraints.Oracle Corporation produces products and services to meet your relational database management system needs. The main product is the Oracle Server, which enables you to store and manage information by using SQL and the PL/SQL engine for procedural constructs.SQLThe Oracle Server supports ANSI standard SQL and contains extensions. SQL is the language used to communicate with the server to access, manipulate, and control data.PL/SQLThe PL/SQL language extends the SQL language by offering block-structured procedural constructs combined with SQL nonprocedural capabilities.