Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem...

54
Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic .NET Programming: From Problem Analysis to Program Design

Transcript of Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem...

Page 1: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET

Visual Basic .NET Programming:

From Problem Analysis to Program Design

Page 2: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 2

Objectives

• Explore the relational database model

• Construct database queries using SQL

• Write VB .NET programs that interact with a relational database

• Explore ASP.NET

Page 3: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 3

Exploring the Relational Database Model

• Real-world applications require data persistence

– VB .NET provides several mechanisms

• Sequential files

• Relational database

Page 4: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 4

Understanding Tables, Rows, Columns, and Primary and

Foreign Keys• Tables

– Organize data

– Relational database consists of many different tables

• Related to each other in some way

– Consist of• Rows

• Columns

Page 5: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 5

Understanding Tables, Rows, Columns, and Primary and Foreign Keys (continued)

• Rows

– Records

– Instances

• Columns

– Attributes

– Fields

Page 6: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 6

Understanding Tables, Rows, Columns, and Primary and Foreign Keys (continued)

• Primary key

– Field that uniquely identifies each record

– Good database design calls for primary key whose

• Value is not likely to change over time

• Value is not null for any instance

– Can add unique identifying attribute to table

Page 7: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 7

Understanding Tables, Rows, Columns, and Primary and Foreign Keys (continued)

• Foreign key

– Links information in one table to information in another table

– Must be primary key in other table

Page 8: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 8

Page 9: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 9

Mapping PD Attributes to Database Tables

• Many different choices for organizing attributes into relational tables– Attributes can be mapped to more than one table

– Can add fields that were not originally contained in PD class

– Seldom single choice• Weigh benefits and drawbacks of several possible

designs

• Choose design that best fits needs of application

Page 10: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 10

Page 11: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 11

Page 12: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 12

Page 13: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 13

Constructing Queries Using SQL

• Query

– Request for information.

– Usually specifies one or more conditions that extracted information must meet

– Can be written in Structured Query Language

• SQL

Page 14: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 14

Constructing Queries Using SQL (continued)

• SQL

– Enables you to perform other common database operation

• Insert

• Update

• Delete

Page 15: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 15

Extracting Records from a Database

• SELECT statement.– Format:

SELECT attribute1, attribute2, ... , attributeN

FROM table

WHERE condition

– Each attribute specifies name of column

– Table specifies name of table

– Condition specifies criteria for selecting records from table

Page 16: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 16

Extracting Records from a Database (continued)

• SELECT statement

– Example:

SELECT FirstName, LastName FROM Customer WHERE State = ‘GA’

– Can use keywords AND and OR

• To specify compound conditions

– Extract attributes from multiple tables

Page 17: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 17

Inserting Records into a Database

• INSERT statement

– Formats:

INSERT INTO table VALUES (value1, value2, ... , valueN)

INSERT INTO table (attribute1, attribute2, ... , attributeN) VALUES (value1, value2, ... , valueN)

– First format

• Must know order of fields in underlying table

Page 18: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 18

Inserting Records into a Database (continued)

• INSERT statement

– Example:

INSERT INTO Customer VALUES ('51954', 'John', 'Doe', 'Miami', 'FL', '345-6789')

Page 19: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 19

Updating Records in a Database

• UPDATE statement

– Format:

UPDATE table

SET attribute1=value1, attribute2=value2, ..., attributeN=valueN

WHERE condition

– SET clause

• Assign values to each attribute to be modified

Page 20: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 20

Updating Records in a Database (continued)

• UPDATE statement (continued)

– WHERE clause

• Specifies to which record UPDATE command applies

– Example:

UPDATE Customer SET State = 'Georgia' WHERE State = 'GA'

Page 21: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 21

Deleting Records from a Database

• DELETE statement

– Format:

DELETE FROM table WHERE condition

– WHERE clause

• Specifies conditions that determine record to delete

– Example:

DELETE FROM Customer WHERE State = 'Georgia'

Page 22: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 22

Writing VB .NET Programs that Interact with a Relational

Database

• VB .NET Framework provides support for several database management systems including:

– Oracle

– Microsoft Access

– Microsoft SQLServer

Page 23: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 23

Writing VB .NET Programs that Interact with a Relational

Database (continued)

• Data providers – Used to

• Connect to database

• Execute commands,

• Retrieve results

• Namespaces:– System.Data– System.Data.OleDb

Page 24: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 24

Page 25: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 25

Page 26: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 26

Page 27: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 27

Understanding the Examples in this Section

• Build on Programming Example presented at end of Chapter 13

• Integrated system

– Adding students and professors to database

– Producing lists of students and professors.

– Extends functionality to allow updating/deleting

Page 28: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 28

Page 29: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 29

Understanding the Examples in this Section (continued)

• Three-tier design– PD and GUI classes are unaware of how DA class

implements data persistence

– DA class handles all interaction with database and carries out tasks of:

• Inserting

• Updating

• Deleting

• Extracting information

Page 30: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 30

Understanding the Examples in this Section (continued)

• Three-tier design

– GUI classes that capture and display information simply invoke DA methods

Page 31: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 31

Making the StudentDA Class Work with an Access Database

• Import namespaces that provide functionality to interact with Microsoft Access database

• Initialize method

– Creates and opens connection to database

– Attempt to open connection is enclosed within Try-Catch block

Page 32: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 32

Making the StudentDA Class Work with an Access Database

(continued)• GetAll method

– Issues SELECT command to retrieve all records from database

• General approach for executing SELECT command:

– Create data set instance

– Create data adapter instance

Page 33: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 33

Making the StudentDA Class Work with an Access Database

(continued)• General approach for executing SELECT command

(continued):– Define String variable containing SELECT statement– Use SelectCommand property of data adapter to

create command instance and execute command against database

– Invoke Fill method of data adapter class to populate data set

Page 34: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 34

Making the StudentDA Class Work with an Access Database

(continued)

• Find method

– Nearly identical to GetAll method

– SELECT statement issued within Find method returns at most one record

• AddNew method

– Insert new record into database

Page 35: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 35

Making the StudentDA Class Work with an Access Database

(continued)

• To create and execute INSERT command in VB.NET:

– Create data adapter instance

– Create instance of OleDbCommand class

– Assign instance to data adapter’s InsertCommand

– Invoke ExecuteNonQuery method of OleDbCommand class

Page 36: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 36

Making the StudentDA Class Work with an Access Database

(continued)• Update method

– Similar to AddNew method.– Defines SQL statement to update database

• Delete method– Defines SQL DELETE statement– Deletes record from database

• Terminate method– Closes database connection

Page 37: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 37

Making the StudentDA Class Work with an Access Database

(continued)• Exception classes:

– NotFoundException

– DuplicateException

Page 38: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 38

Recognizing the Benefits of the Three-Tier Design

• Very little change required to PD and GUI classes

– To make them work with new StudentDA class

Page 39: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 39

Programming Example: Updating and Deleting Records

in a Relational Database

• Demonstrates how to update and delete records from relational database in three-tier design

– Using methods of StudentDA class

• Benefit of three-tier design

– Add new GUIs without having to make changes in PD and DA tiers

Page 40: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 40

Page 41: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 41

Introducing ASP.NET

• ASP.NET

– Used to write interactive web pages

Page 42: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 42

Reviewing Web Basics

• Hypertext Markup Language (HTML)– Employed by web pages

– Enables browsers to display Web pages on variety of computing platforms

– Descriptive language

• Uniform Resource Locator (URL)• ASP.NET

– Can contain HTML and related files containing code to provide interactivity

Page 43: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 43

Reviewing Web Basics (continued)

• Web pages

– Actual files containing HTML code

– Have extension of .htm or .html

– Contains tags that define format of Web page

– Can be created using any text editor

• Such as Notepad

Page 44: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 44

Page 45: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 45

Creating ASP.NET Projects

• NET Framework provides tools to develop both

– Windows applications

– Web applications

• ASP.NET separates procedural code from Web form (HTML) code:

– Web form file has suffix of .aspx,

– Code file has suffix .vb

• Called code-behind file

Page 46: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 46

Creating ASP.NET Projects (continued)

• In new projects dialog box in Visual Studio .NET

– Choose ASP.NET Web Application template

• Use Toolbox to add form components

– Display Web Forms or HTML sections

Page 47: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 47

Page 48: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 48

Page 49: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 49

Creating ASP.NET Projects (continued)

• Validation controls

– Facilitate adding data validation

– Appear in Toolbox

– Can be placed on Web page just as any other controls

– Properties can be accessed in Properties window

Page 50: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 50

Page 51: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 51

Programming Example: Electricity Billing

• Deploys Electricity Billing Programming Example at end of Chapter 10

– As ASP.NET Web-based application

• GUI

– Inputs and validates

• Customer Number

• Previous, and Current Meter Readings

Page 52: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 52

Programming Example: Electricity Billing (continued)

• Data validation:

– Customer Number is required

– Previous Reading is required

• Must be in range 0–99999

– Current Reading is required

• Must be in range 0–99999

• Must be greater than or equal to Previous Reading

Page 53: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 53

Summary

• Applications require data to be persistent– Use relational databases

• Relational database– Enables you to organize data into tables

• Primary key – Field that uniquely identifies each record in table

• Query – Request for information

Page 54: Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET Visual Basic.NET Programming: From Problem Analysis to Program Design.

Visual Basic .NET Programming: From Problem Analysis to Program Design 54

Summary (continued)• Structured Query Language (SQL)

– Allows you to specify queries

• Three-tier design

– PD and GUI classes are unaware of how data DA class implements data persistence

• Web development using ASP.NET is similar to developing GUI applications for Windows

• ASP.NET separates procedural code from Web form (HTML) code