Chapter 1: Client/Server Databases and the Oracle 10g Relational Database Guide to Oracle 10g Objectives • Develop an understanding of the purpose of database systems • Describe the purpose and contents of an entityrelationship model • Explain the steps in the normalization process • Describe the differences between personal and client/server databases Guide to Oracle 10g 2 Objectives (continued) • Understand the Northwoods University student registration database and the Clearwater Traders sales order database Guide to Oracle 10g 3 Introduction • If an organization needs to store and maintain a large amount of data that must be viewed and updated by many users at the same time, it often uses a client/server database such as Oracle 10g. Guide to Oracle 10g 4 Database Systems • Data files consist of: – Fields • Describe characteristics • Also called columns – Records • Group of related fields Guide to Oracle 10g 5 Database Systems (continued) • Problems with storing data in files: – Proliferation of data management programs – Presence of redundant data – Inconsistent data • Database – Stores all organizational data in central location – Eliminates redundant data to reduce possibility of inconsistent data Guide to Oracle 10g 6 Database Systems (continued) • Database management system (DBMS) – Application that performs all routine data-handling operations – Provides central set of common functions for managing database • • • • Inserting Updating Retrieving Deleting data values Guide to Oracle 10g 7 Database Approach to Data Processing Guide to Oracle 10g 8 Database Systems (continued) • Database administrator – Person responsible for installing, administering, and maintaining the database – Often called DBA Guide to Oracle 10g 9 Overview of Relational Databases • Table – Matrix with columns and rows • Columns – Represent different data fields – Characteristics or attributes about entity • Rows – Contain individual records – Attributes about a specific instance of entity Guide to Oracle 10g 10 Overview of Relational Databases (continued) Guide to Oracle 10g 11 Overview of Relational Databases (continued) • Entity – Object about which you want to store data – Different tables store data about each different entity • Relationships – Links that show how different records are related Guide to Oracle 10g 12 Overview of Relational Databases (continued) • Key fields – Establish relationships among records in different tables – Main types of key fields • • • • • Primary Candidate Surrogate Foreign Composite Guide to Oracle 10g 13 Primary Keys • Column in relational database table whose value must be unique for each row • Serves to identify individual occurrence of entity • Every row must have a primary key • Cannot be NULL • NULL – Value is absent or unknown – No entry is made for that data element Guide to Oracle 10g 14 Candidate Keys • Any column that could be used as the primary key • Should be a column that is unique for each record and does not change Guide to Oracle 10g 15 Surrogate Keys • Column created to be record’s primary key identifier • Has no real relationship to row to which it is assigned other than to identify it uniquely • Surrogate key values automatically generated using a sequence Guide to Oracle 10g 16 Foreign Keys • Column in table that is a primary key in another table • Creates relationship between two tables • Value must exist in table where it is the primary key Guide to Oracle 10g 17 Composite Keys • Unique key that is created by combining two or more columns • Usually comprises fields that are primary keys in other tables Composite Key ORDER_ID PRODUCT_ID ORDER_QUANTITY 100 1 2 100 2 2 200 2 2 200 1 1 Guide to Oracle 10g 18 Database Design • Main tasks involved with design of database: – Developing entity-relationship (ER) model – Normalizing database tables Guide to Oracle 10g 19 Entity-Relationship Model • Designed to help you identify which entities need to be included in database • Composed of – Squares representing entities – Lines representing relationships • Types of relationships: – One to one (1:1) – One to many (1:M) – Many to many (N:M) Guide to Oracle 10g 20 Entity-Relationship Model (continued) • One to one (1:1) – Each occurrence of a specific entity is found only once in each set of data – Rare in relational databases • One to many (1:M) – Instance can only appear once in one entity, but one or more times in the other entity Guide to Oracle 10g 21 Entity-Relationship Model (continued) • Many to many (N:M) – Instance can occur multiple times in each entity – Cannot be represented in physical database – Broken down into series of two or more 1:M relationships through use of linking table in process of normalization Guide to Oracle 10g 22 Normalization • Step-by-step process used to determine which data elements should be stored in which tables • Purpose – Eliminate data redundancy • Several levels of normalization – Forms Guide to Oracle 10g 23 Normalization (continued) • Unnormalized data – Does not have a primary key identified – Contains repeating groups • First normal form (1NF) – Repeating groups removed – Primary key field identified Guide to Oracle 10g 24 Example of Unnormalized Data Guide to Oracle 10g 25 Normalization (continued) • Second normal form (2NF) – In 1NF – No partial dependencies • Partial dependency – Fields within the table are dependent only on part of the primary key Guide to Oracle 10g 26 Normalization (continued) • Basic procedure for identifying partial dependency: – Look at each field that is not part of the composite primary key – Make certain you are required to have both parts of the composite field to determine the value of the data element Guide to Oracle 10g 27 Normalization (continued) • Third normal form (3NF) – In 2NF – No transitive dependencies • Transitive dependency – Field is dependent on another field within the table that is not the primary key field Guide to Oracle 10g 28 Database Systems • Consists of – DBMS • Manages physical storage and data retrieval – Database applications • Provide interface that allows users to interact with database • Server – Computer that shares resources with other computers Guide to Oracle 10g 29 Database Systems (continued) • Server process – Program that listens for requests for resources from clients – Responds to requests • Client – Program that requests and uses server resources Guide to Oracle 10g 30 Personal Database Management Systems • DBMS and database applications run on same workstation • Appear to user as a single integrated application • Used primarily for creating single-user database applications • Can also be used for some multiuser applications • Should be used only for applications that are not mission critical Guide to Oracle 10g 31 Personal Database Management Systems (continued) • Microsoft Access – Stores all data for database in a single file with an .mdb extension – Database administrator stores .mdb file on a central file server Guide to Oracle 10g 32 Using a Personal Database for a Multiuser Application Guide to Oracle 10g 33 Personal Database Management Systems (continued) • Transaction processing – Grouping related database changes into units of work that must either all succeed or all fail – DBMS can use the transaction log to reverse—or roll back—the changes Guide to Oracle 10g 34 Client/Server Database Management Systems • DBMS server process runs on one workstation • Database applications run on separate client workstations across network • Server sends only requested data back to client rather than entire database Guide to Oracle 10g 35 Client/Server Database Architecture Guide to Oracle 10g 36 Client/Server Database Management Systems (continued) • Generate less network traffic than personal databases • Extra features to minimize chance of failure • Powerful recovery mechanisms that often operate automatically • Maintain file-based transaction log on database server Guide to Oracle 10g 37 Client/Server Database Management Systems (continued) • Preferred for – Database applications that retrieve and manipulate small amounts of data from databases containing large numbers of records – Mission-critical applications – Web-based database applications that require increased security and fault tolerance Guide to Oracle 10g 38 The Oracle 10g Client/Server Database • Oracle 10g – Latest release of Oracle Corporation’s relational database – Client/server database • Server side – DBMS server process • Oracle Net – Utility that enables network communication between client and server Guide to Oracle 10g 39 Client/Server Architecture for Oracle 10g DBMS Guide to Oracle 10g 40 The Oracle 10g Client/Server Database (continued) • Oracle Application Server – Used to create World Wide Web pages that allow users to access Oracle databases • Oracle client products: – SQL*Plus – Oracle 10g Developer Suite – Enterprise Manager Guide to Oracle 10g 41 The Database Cases • Fictional organizations: – Clearwater Traders – Northwoods University • Design principles: – Convert all tables to third normal form – Include primary key as foreign key in table on “many” side of relationship – Specify data type for each column Guide to Oracle 10g 42 The Clearwater Traders Sales Order Database • Clothing and sporting goods through mail-order catalogs • Wants to begin accepting orders using Web site • Required data consists of information for: – – – – Customers Orders Items Shipments Guide to Oracle 10g 43 The Clearwater Traders Sales Order Database (continued) • Tables: – – – – – CUSTOMER ORDER_SOURCE ORDERS CATEGORY ITEM Guide to Oracle 10g 44 The Clearwater Traders Sales Order Database (continued) • Tables (continued): : – – – – – ORDER_LINE SHIPMENT INVENTORY SHIPMENT_LINE COLOR Guide to Oracle 10g 45 Visual Representation of the Clearwater Traders Database Guide to Oracle 10g 46 The Northwoods University Student Registration Database • Student registration system • Data items consist of information about: – – – – Students Courses Instructors Student Enrollment Guide to Oracle 10g 47 The Northwoods University Student Registration Database (continued) • Tables: – – – – – – – LOCATION FACULTY STUDENT TERM COURSE COURSE_SECTION ENROLLMENT Guide to Oracle 10g 48 Visual Representation of the Northwoods University Database Guide to Oracle 10g 49 Summary • Relational databases – Store data in tabular format – Create relationships that link related data using key columns • Primary key – Column that uniquely identifies specific record • Foreign key – Creates relationship between two tables Guide to Oracle 10g 50 Summary (continued) • Entity-relationship (ER) model – Used to describe types of relationships between entities • Normalization process – Used to determine which fields belong in which tables • Database system consists of – DBMS – Database applications Guide to Oracle 10g 51 Summary (continued) • Client/server databases divide database into – Server process that runs on network server – User application processes that run on individual client workstations • Oracle 10g is a client/server database Guide to Oracle 10g 52