Jerry Post McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Database Management Systems Chapter 1
DATABASE 2 Topics To Cover Syllabus Website : Discuss extra class(es) Project Proposal Discussion-Day 2 Install Visio and Project- Day 2- academy.com.suny_cit/index.cfm?loc=login/login Power Point Slides-Day 1 & Day 2
DATABASE 3 Goal: Build a Business Application Tools: Database Design SQL (queries) Programming Design SQL Program Design SQL Program Best: Spend your time on design and SQL. Worst: Compensate for poor design and limited SQL with programming.
DATABASE 4 DBMS: Database Management System Database A collection of data stored in a standardized format, designed to be shared by multiple users. Database Management System Software that defines a database, stores the data, supports a query language, produces reports, and creates data entry screens.
DATABASE 5 Application Development Feasibility Identify scope, costs, and schedule Implementation Transfer data, install, train, review Development Create forms, reports, and help; test Design Define tables, relationships, forms, reports Analysis Gather information from users tasks time
DATABASE 6 1. Identify business rules. 2. Define tables and relationships. 3. Create input forms and reports. 4. Combine as applications for users. DBMS Application Design
DATABASE 7 DBMS Features/Components Database engine Storage Retrieval Update Query Processor Data dictionary Utilities Security Report writer Forms generator (input screens) Application generator Communications 3GL Interface
DATABASE 8 DBMS Engine, Security, Utilities Data Tables Database Engine Product ItemIDDescription 887Dog food 946Cat food Order OrderIDODate Customer CustomerID Name 1195Jones 2355Rojas Product ItemIDInteger, Unique DescriptionText, 100 char Customer CustomerIDInteger, Unique NameText, 50 char Security User Identification Access Rights Utilities Concurrency and Lock Manager Backup and Recovery Administration Data Dictionary
DATABASE 9 Database Tables (Access)
DATABASE 10 FieldCategoryAnimalID TableAnimal TotalsGroup ByCount SortDescending Criteria Or AnimalID Name Category Breed Animal DBMS Query Processor All Data Database Engine Data Dictionary Query Processor CategoryCountOfAnimalID Dog100 Cat47 Bird15 Fish14 Reptile6 Mammal6 Spider3
DATABASE 11 DBMS Report Writer All Data Database Engine Data Dictionary Query Processor Report Writer Report Format and Query
DATABASE 12 DBMS Input Forms All Data Database Engine Data Dictionary Query Processor Form Builder Input Form Design
DATABASE 13 DBMS Components All Data Database Engine Data Dictionary Security Query Processor Form Builder Report Writer Communication Network 3GL Connector Program Application Generator
DATABASE 14 Advantages of Database Approach Minimal data redundancy. Data consistency. Integration of data. Sharing of data. Enforcement of standards. Ease of application development. Uniform security, privacy and integrity. Data independence.
DATABASE 15 Database Management Approach Data is most important Data defined first Standard format Access through DBMS Queries, Reports, Forms Application Programs 3GL Interface Data independence Change data definition without changing code Alter code without changing data Move/split data without changing code All Data DBMS Program1Program2 Queries Reports
DATABASE 16 Modifying Data with DBMS Add cell number to employee table Open table definition Add data element If desired, modify reports Use report writer No programming Existing reports, queries, code will all run as before with no changes. Field NameData TypeDescription EmployeeIDNumberAutonumber.. TaxpayerIDTextFederal ID LastNameText FirstNameText... PhoneText... CellPhoneTextCellular...
DATABASE 17 Drawbacks of old File methods Uncontrolled Duplication Wastes space Hard to update all files Inconsistent data Inflexibility Hard to change data Hard to change programs Limited data sharing Poor enforcement of standards Poor programmer productivity Excessive program maintenance
DATABASE 18 File Method Problems Files defined in program Cannot read file without definition Hard to find definition Every time you alter file, you must rewrite code Change in a program/file will crash other code Cannot tell which programs use each file Multiuser problems Concurrency Security Access Backup & Restore Efficiency Indexes Programmer talent System Application
DATABASE 19 Hierarchical Database Customers Orders ItemDescriptionQuantity 998Dog Food12 764Cat Food11 Items Customer Order Items Ordered To retrieve data, you must start at the top (customer). When you retrieve a customer, you retrieve all nested data.
DATABASE 20 Network Database Customer Order Items Ordered Items Entry point
DATABASE 21 Relational Database Customer(CustomerID, Name, … Order(OrderID, CustomerID, OrderDate, … ItemsOrdered(OrderID, ItemID, Quantity, … Items(ItemID, Description, Price, …
DATABASE 22 Object-Oriented DBMS Customer CustomerID Name … Add Customer Drop Customer Change Address Order OrderID CustomerID … NewOrder DeleteOrder … OrderItem OrderID ItemID … OrderItem DropOrderItem … Item ItemID Description … New Item Sell Item Buy Item … Government Customer ContactName ContactPhone Discount, … NewContact Commercial Customer ContactName ContactPhone … NewContact
DATABASE 23 Base Data Types Numbers Integers Reals Text Length International Date/Time Images Bitmap Vector Sound Samples MIDI Video Numbers, Text, and Dates Images Sound Video InputProcessOutput = pitch, volume time
DATABASE 24 Objects Object Definition-- encapsulation. Object Name Properties Methods Most existing DBMS do not handle inheritance. Combine into one table. Use multiple tables and link by primary key. More efficient. Need to add rows to many tables. Customer CustomerID Address Phone AddCustomer DropCustomer Class name Properties Methods Commercial Contact VolumeDiscount ComputeDiscount Government Contact BalanceDue BillLateFees AddCustomer Inheritance Polymorphism
DATABASE 25 Objects in a Relational Database CustomerID Address Phone Customer CustomerID Contact VolumeDiscount CommercialCustomer CustomerID Contact BalanceDue GovernmentCustomer Separate inherited classes. Link by primary key. Adding a new customer requires new rows in each table. Definitely need cascade delete.
DATABASE 26 OO Difficulties: Methods Database Object Customer Method: Add New Customer Application Customer Name Address Phone Personal Computer Unix Server IBM Server Program code Database Object How can a method run on different computers? Different processors use different code. Possibility: Java
DATABASE 27 SQL 99: OO Features Abstract data type User defined data types. Equality and ordering functions. Encapsulation: Public, Private, Protected. Inheritance. Sub-tables that inherit all columns from another table. Persistent Stored Modules (Programming Language). Create methods. SQL and extensions. External language. User defined operators. Triggers for events. External language support Call-Level Interface (CLI) Direct access to DBMS Embedded SQL SQL commands in an external language.
DATABASE 28 Abstract Data Types GeoPoint Latitude Longitude Altitude GeoLine NumberOfPoints ListOfGeoPoints Procedure: DrawRegion { Find region components. SQL: Select … For each component { Fetch MapLine Set line attributes MapLine.Draw }
DATABASE 29 SQL 99 Sub-Tables CREATE SET TABLE CommercialCustomer ( ContactVARCHAR, VolumeDiscountNUMERIC(5,2) ) UNDER Customer; CREATE SET TABLE Customer ( CustomerIDINTEGER, AddressVARCHAR, PhoneCHAR(15) ) CustomerID Address Phone Customer Contact VolumeDiscount CommercialCustomer Inherits columns from Customer.
DATABASE 30 SQL 99: Programming Database Data TypesTables, … Persistent Stored Modules SQL Extended SQL code External language code External Programs Embedded SQL Call-Level Interface CURSOR … SELECT … FETCH …
DATABASE 31 Why don’t all developers use a DBMS? Most new projects (in last 5 years) do use a DBMS Need specialized personnel Programmers Designers/Analysts Database administrators Need to define data for organization Cost PC:$400 - $2000 Large:$100,000 +
DATABASE 32 How do you sell a DBMS approach? Applications change a lot, but same data. Need for ad hoc questions and queries. Need to reduce development times. Need shared data. Improve quality of data. Enable users to do more development.
DATABASE 33 Building the Right System: Feasibility Costs Up-front/one-time Software ($ millions !) Hardware Communications Data conversion Studies and Design Training On-going costs Personnel Software upgrades Supplies Support Software & Hardware maintenance Benefits Cost Savings Software maintenance Fewer errors Less data maintenance Less user training Increased Value Better access to data Better decisions Better communication More timely reports Faster reaction to change New products & services Strategic Advantages Lock out competitors Easy to estimateHard to value
DATABASE 34 Economic Feasibility: NPV =NPV(B14,$D$7:$D$11)+$D$6 =NPV(rate, range) + starting
DATABASE 35 Exercise: Build a First Database Employee(EmployeeID, LastName, FirstName, Address, DateHired) 332AntAdam354 Elm5/5/ BonoSonny765 Pine8/8/ CassMama886 Oak2/2/ DonovanMichael421 Willow3/3/ MoonKeith554 Cherry4/4/ MorrisonJim676 Sandalwood5/5/1968 Client(ClientID, LastName, FirstName, Balance, EmployeeID) 1101JonesJoe SmithMary BrownLaura DieterJackie WodkoskiJohn SanchezPaula ChenCharles HagenFritz HauerMarianne NguyenSuzie MartinMark
DATABASE 36 Exercise: Report Ant, Adam5/5/1964 Brown, Laura Chen, Charles Bono, Sonny8/8/1972 Dieter, Jackie Jones, Joe