chapter 10 – database management

68
1 Chapter 10 – Database Management 10.1 An Introduction to Databases 10.2 Editing and Designing Databases

Upload: coen

Post on 06-Jan-2016

68 views

Category:

Documents


0 download

DESCRIPTION

Chapter 10 – Database Management. 10.1 An Introduction to Databases 10.2 Editing and Designing Databases. 10.1 An Introduction to Databases. Accessing a Database Table Binding to Additional Tables Querying a Table with LINQ Primary and Foreign Keys The Join of Two Tables. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 10 – Database Management

1

Chapter 10 – Database Management

10.1 An Introduction to Databases

10.2 Editing and Designing Databases

Page 2: Chapter 10 – Database Management

2

10.1 An Introduction to Databases

• Accessing a Database Table

• Binding to Additional Tables

• Querying a Table with LINQ

• Primary and Foreign Keys

• The Join of Two Tables

Page 3: Chapter 10 – Database Management

3

Sample Table – Cities Table

Page 4: Chapter 10 – Database Management

4

Sample Table – Countries Table

Page 5: Chapter 10 – Database Management

5

Database Terminology

• A table is a rectangular array of data.

• Each column of the table, called a field, contains the same type of information.

• Each row, called a record, contains all the information about one entry in the table.

Page 6: Chapter 10 – Database Management

6

Database Management Software (DBMS)

• Used to create databases

• Databases contain one or more related tables

• Examples of DBMS are Access, Oracle, and SQL Server.

• The databases used in this chapter are found in the folder Programs\Ch10\Databases. They were created with Access and have the extension accdb.

Page 7: Chapter 10 – Database Management

Megacities.accdb

• Contains the two tables Cities and Countries shown earlier.

• This database will be used extensively in the examples for this chapter.

• Several steps are required to bind to a table of the database. (See the next sixteen slides.)

7

Page 8: Chapter 10 – Database Management

Binding to the Cities Table

Add a BindingSource control to the form. (The control is in the Data and All Windows Forms group of the Toolbox. It appears in the form’s component tray with the name BindingSource1.)

8

Page 9: Chapter 10 – Database Management

DataSource Property of BindingSource1

9

click here

Page 10: Chapter 10 – Database Management

Choose Data Source Type

10

click on Next button

select

Page 11: Chapter 10 – Database Management

Choose Database Model

11

click on Next button

select

Page 12: Chapter 10 – Database Management

Choose Data Connection

12

click on New Connection button

Page 13: Chapter 10 – Database Management

Add Connection Dialog Box

13

click on Change button

Page 14: Chapter 10 – Database Management

Change Data Source Box

14

select

click on OK button

Page 15: Chapter 10 – Database Management

15

Add Connection Dialog Box

click on Browse button

Page 16: Chapter 10 – Database Management

Select Database File

16

double-click on Megacities.accdb

Page 17: Chapter 10 – Database Management

Add Connection Dialog Box

17

click on OK button

Page 18: Chapter 10 – Database Management

Choose Data Connection

18

click on Next button

Page 19: Chapter 10 – Database Management

19

click on Yes button

Page 20: Chapter 10 – Database Management

Save to File

20

check this box

click on Next button

Page 21: Chapter 10 – Database Management

Choose Database Objects

21

check on Tables box

click on Finish button

Page 22: Chapter 10 – Database Management

Changes in Properties Window and Form

22

Page 23: Chapter 10 – Database Management

After Clicking on DataMember Down-Arrow

23

click on Cities

Page 24: Chapter 10 – Database Management

VB Generated Items

24

new iconnew code

Page 25: Chapter 10 – Database Management

Binding Complete

• We are now bound to the Cities table via the MegacitiesDataSet and the CitiesTableAdapter.

• The next four slides show how to bind an additional table.

25

Page 26: Chapter 10 – Database Management

Connect an Additional Table

Add another BindingSource control to the form.

26

Page 27: Chapter 10 – Database Management

Set DataSource Property

27

click on MegacitiesDataSet

Page 28: Chapter 10 – Database Management

Set DataMember Property

28

click on Countries

Page 29: Chapter 10 – Database Management

VB Generated Items

29

additional code shows in Load event procedureMe.CountriesTableAdapter.Fill(Me.MegacitiesDataSet.Countries)

new icon

Page 30: Chapter 10 – Database Management

Example 1: Form

30

txtTotalPop

Page 31: Chapter 10 – Database Management

Example 1: CodePrivate Sub btnDisplay_Click(...) Handles _ btnDisplay.Click Dim query1 = From city In MegacitiesDataSet.Cities

Where city.country = "India"

Order By city.pop2010 Descending

Select city.name

lstOutput.DataSource = query1.ToList

lstOutput.SelectedItem = Nothing

31

Page 32: Chapter 10 – Database Management

Example 1: Code (continued)

Dim query2 = From city In _ MegacitiesDataSet.Cities

Where city.country = "India"

Select city.pop2010

txtTotalPop.Text = CStr(query2.Sum)

End Sub

32

Page 33: Chapter 10 – Database Management

Example 1: Output

33

Page 34: Chapter 10 – Database Management

Example 2: Form

34

txtName

dgvOutput

Page 35: Chapter 10 – Database Management

Example 2: CodeDim query = From country In _ MegacitiesDataSet.Countries

Where country.name = txtName.Text

Select country.name, country.pop2010, country.monetaryUnit

If query.Count = 1 Then

dgvOutput.DataSource = query.ToList

dgvOutput.CurrentCell = Nothing

Else

MessageBox.Show("Country not found")

End If35

Page 36: Chapter 10 – Database Management

Example 2: Output

36

Page 37: Chapter 10 – Database Management

Example 3: Form

37

dgvOutput

Page 38: Chapter 10 – Database Management

Example 3: CodeDim query = From city In _ MegacitiesDataSet.Cities

Let popIncrease = city.pop2015 - city.pop2010

Let formattedIncr = FormatNumber(popIncrease, 1)

Where popIncrease > 1

Order By popIncrease Descending

Select city.name, formattedIncr

38

Page 39: Chapter 10 – Database Management

Example 3: Code (continued)

dgvOutput.DataSource = query.ToList

dgvOutput.CurrentCell = Nothing

dgvOutput.Columns("name").HeaderText = "City"

dgvOutput.Columns("formattedIncr").HeaderText = "Population Increase"

39

Page 40: Chapter 10 – Database Management

Example 3: Output

40

Page 41: Chapter 10 – Database Management

41

Primary Keys

• A primary key is used to uniquely identify each record.

• Databases of student enrollments in a college usually use a field of student ID numbers as the primary key.

• Why wouldn't names be a good choice as a primary key?

Page 42: Chapter 10 – Database Management

42

Primary Key Fields• Specified when database is created.• Every record must have an entry in the

primary-key field. • Two records cannot have the same entry in

the primary-key field.• This pair of requirements is called the Rule

of Entity Integrity.

Page 43: Chapter 10 – Database Management

43

Two or More Tables• When a database contains two or more tables,

the tables are usually related. • For instance, the two tables Cities and

Countries are related by their country and name fields.

• Notice that every entry in Cities.country appears uniquely in Countries.name and Countries.name is a primary key.

• We say that Cities.country is a foreign key of Countries.name.

Page 44: Chapter 10 – Database Management

44

Foreign Keys

• Foreign keys can be specified when a table is first created. Visual Basic will insist on the Rule of Referential Integrity.

• This Rule says that each value in the foreign key must also appear in the primary key of the other table.

Page 45: Chapter 10 – Database Management

45

Join• A foreign key allows Visual Basic to link (or

join) two tables from a relational database

• When the two tables Cities and Countries from Megacities.accdb are joined based on the foreign key Cities.country, the result is the table in the next slide.

• The record for each city is expanded to show its country’s population and its monetary unit.

Page 46: Chapter 10 – Database Management

46

A Join of Two Tables

Page 47: Chapter 10 – Database Management

47

Beginning of Query to Join the Two Tables from Megacities

Dim query = From city In _ MegacitiesDataSet.Cities

Join country In MegacitiesDataSet.Countries

On city.country Equals country.name

Page 48: Chapter 10 – Database Management

Example 6: Form

48

Page 49: Chapter 10 – Database Management

Example 6: Code for Load Event

Me.CountriesTableAdapter.Fill(Me.MegacitiesDataSet.Countries)

Me.CitiesTableAdapter.Fill(Me.MegacitiesDataSet.Cities)

Dim query = From country In _ MegacitiesDataSet.Countries

Order By country.monetaryUnit Ascending

Select country.monetaryUnit

Distinct

lstCurrencies.DataSource = query.ToList

49

Page 50: Chapter 10 – Database Management

Example 6: Later CodeDim query = From city In _ MegacitiesDataSet.Cities

Join country In MegacitiesDataSet.Countries

On city.country Equals country.name

Where country.monetaryUnit = lstCurrencies.Text

Order By city.name Ascending

Select city.name

For Each city As String In query

lstCities.Items.Add(city)

Next50

Page 51: Chapter 10 – Database Management

Example 6: Sample Output

51

Page 52: Chapter 10 – Database Management

52

10.2 Editing and Designing Databases

• A Program to Edit the Cities Table

• Designing the Form for the Table-Editing Program

• Writing the Table-Editing Program

• Principles of Database Design

Page 53: Chapter 10 – Database Management

Editing Program: Form

53

navigation toolbar

Page 54: Chapter 10 – Database Management

Navigation Toolbar

54

Page 55: Chapter 10 – Database Management

Editing Program: Output

55

Page 56: Chapter 10 – Database Management

Building the Form

• Start a new program and bind the Cities table.

• Add a BindingNavigator control (found in Data group of Toolbox) to the form. Note: BindingNavigator1 appears in component tray and a navigation toolbar appears at the top of the form.

56

Page 57: Chapter 10 – Database Management

Navigation Bar Added

57

button to be changed

Page 58: Chapter 10 – Database Management

Change Last Button

58

click here

Page 59: Chapter 10 – Database Management

Change Last Button (continued)

59

click on Button

Page 60: Chapter 10 – Database Management

Change Last Button (continued)

60

new button

• New button has name ToolStripButton 1• Use the Properties window for the button to

change the Name, Text, and Image settings to btnUpdate, Update, and Disk.bmp.

Page 61: Chapter 10 – Database Management

Change Last Button (continued)

61

Disk.bmp used for picture on button

Page 62: Chapter 10 – Database Management

Bind to Cities Table

62

click here

Page 63: Chapter 10 – Database Management

Bind Text Boxes to Cities Table Fields

63

drag these four items onto form

Page 64: Chapter 10 – Database Management

Text Boxes and Labels Generated by VB

64

Page 65: Chapter 10 – Database Management

Complete Design of Form

65

Page 66: Chapter 10 – Database Management

Index Numbers

• Each record of the table Cities has an index number ranging from 0 to 9.

• The value of BindingSource1.Position is the index number of the record currently displayed in the form.

66

Page 67: Chapter 10 – Database Management

Index Numbers (continued)

• The statement BindingSource1.Position = n

displays the record having index number n.

• The value of BindingSource1.Find("name", cityName)

is the index number of the specified city.

67

Page 68: Chapter 10 – Database Management

Principles of Database Design

• Data should often be stored in their smallest parts.

• Avoid redundancy.

• Avoid tables with intentionally blank entries.

• Strive for table cohesion.

• Avoid fields whose values can be calculated from existing fields.

68