Chapter 10 – Database Management

Post on 07-Jan-2016

45 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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

1

Chapter 10 – Database Management

10.1 An Introduction to Databases

10.2 Editing and Designing Databases

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

3

Sample Table – Cities Table

4

Sample Table – Countries Table

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.

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.

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

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

DataSource Property of BindingSource1

9

click here

Choose Data Source Type

10

click on Next button

select

Choose Database Model

11

click on Next button

select

Choose Data Connection

12

click on New Connection button

Add Connection Dialog Box

13

click on Change button

Change Data Source Box

14

select

click on OK button

15

Add Connection Dialog Box

click on Browse button

Select Database File

16

double-click on Megacities.accdb

Add Connection Dialog Box

17

click on OK button

Choose Data Connection

18

click on Next button

19

click on Yes button

Save to File

20

check this box

click on Next button

Choose Database Objects

21

check on Tables box

click on Finish button

Changes in Properties Window and Form

22

After Clicking on DataMember Down-Arrow

23

click on Cities

VB Generated Items

24

new iconnew code

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

Connect an Additional Table

Add another BindingSource control to the form.

26

Set DataSource Property

27

click on MegacitiesDataSet

Set DataMember Property

28

click on Countries

VB Generated Items

29

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

new icon

Example 1: Form

30

txtTotalPop

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

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

Example 1: Output

33

Example 2: Form

34

txtName

dgvOutput

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

Example 2: Output

36

Example 3: Form

37

dgvOutput

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

Example 3: Code (continued)

dgvOutput.DataSource = query.ToList

dgvOutput.CurrentCell = Nothing

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

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

39

Example 3: Output

40

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?

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.

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.

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.

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.

46

A Join of Two Tables

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

Example 6: Form

48

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

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

Example 6: Sample Output

51

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

Editing Program: Form

53

navigation toolbar

Navigation Toolbar

54

Editing Program: Output

55

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

Navigation Bar Added

57

button to be changed

Change Last Button

58

click here

Change Last Button (continued)

59

click on Button

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.

Change Last Button (continued)

61

Disk.bmp used for picture on button

Bind to Cities Table

62

click here

Bind Text Boxes to Cities Table Fields

63

drag these four items onto form

Text Boxes and Labels Generated by VB

64

Complete Design of Form

65

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

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

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

top related