Lesson 2 network database system
-
Upload
gio-friginal -
Category
Documents
-
view
314 -
download
1
description
Transcript of Lesson 2 network database system
![Page 1: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/1.jpg)
Network Database System
Prepared by Sir Gio
![Page 2: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/2.jpg)
Network Model Another widely used in data model Many-to-Many relationship Owner – parent record Member – child record Links – collection of records which are
connected to one another
![Page 3: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/3.jpg)
Concept of Owner-Member Relationship
DEPARTMENT
FACULTY MAJORS
CLASSES
STUDENTS
OWNER-MEMBER RELATIONSHIP
![Page 4: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/4.jpg)
OCCURRENCE DIAGRAMS
Used to illustrate the distribution of owner and member records within a network database
Helps in navigation of the database
![Page 5: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/5.jpg)
An Occurrence Diagram
Dr. Ramiro
Dr. Flavie
r
BSIT
BSCS
DIT
Dr. Belen
Dr. Jao
Dr. Cruz
Dr. Holme
s
Dr. J
Dr. No
Dr. Rizal
Department records
Faculty records
Faculty records
Faculty records
![Page 6: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/6.jpg)
CODASYL-DBTG Model Conference On Data System Languages, Data
Base Task Group Original network model presented in a report
by CODASYL-DBTG Collection of set types, owner record types,
and member record types
![Page 7: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/7.jpg)
Characteristics of CODASYL Network Model1. There must be one-to-many relationship
between pairs of record types related with respect to an owner-with-member relationship
2. A given owner instance must posses a unique set of member instances
3. A given record type cannot be both the owner and member of the same set type
Records and their fields are represented as record typetype customer = record type account = recordcustomer-name: string; account-number: integer;customer-street: string; balance: integer;customer-city: string;
![Page 8: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/8.jpg)
DBTG Model Simplified by limiting the link options to one-
to-one or one-to-many Entity relationship is referred to as DBTG set
Segment A
Segment B
The arrowhead is used to denote: ownership
Records or segments are represented as boxes
Links are represented as lines
![Page 9: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/9.jpg)
DBTG Model Just like in hierarchical databases, a particular
set can have any number of set occurrencesCUSTOMER A
ACCOUNT 1 ACCOUNT 2 ACCOUNT 3
CUSTOMER B
ACCOUNT 4 ACCOUNT 5
CUSTOMER C
ACCOUNT 6
CUSTACCT SET OCCURRENCESA descriptive way of naming a DBTG database is by combining the names of the owner and member segments
![Page 10: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/10.jpg)
DBTG Model Another way of illustrating a set occurrence is
similar to the one used in mathematical sets
CUSTOMER A CUSTOMER B CUSTOMER C CUSTOMER D
ACCOUNT 1
ACCOUNT 1
ACCOUNT 1
ACCOUNT 4
ACCOUNT 5
ACCOUNT 6
Ow
ner
Reco
rds
Mem
bers
Reco
rds
CUSTACCT SET OCCURRENCES
![Page 11: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/11.jpg)
ACCOUNT 6
ACCOUNT 5
DBTG Model A set of occurrence can be represented as a link list
CUSTOMER A ACCOUNT 1 ACCOUNT 2 ACCOUNT 3
Illustrates that the member segments are ordered
LINKED REPRESENTATION OF A SET OCCURRENCES
CUSTOMER B ACCOUNT 4
CUSTOMER C
![Page 12: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/12.jpg)
DBTG Model
CUSTOMER BRANCH
ACCOUNT
Let us add another owner segment and call it BRANCH
This segment is also an owner of the ACCOUNT segment
![Page 13: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/13.jpg)
DBTG Model The Data Structure Diagram below shows
the inclusion of segment BRANCH and fields of each segmentCUSTOMERname street city
BRANCHname assets city
ACCOUNTnumber balance
![Page 14: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/14.jpg)
DBTG Model A populated representation will help further
understanding the existing owner-member relationship in set CUSTACCT and BRNACCT
ACCOUNT 3CUSTOMER B
CUSTOMER C
CUSTOMER A
ACCOUNT 2
ACCOUNT 1
ACCOUNT 4
ACCOUNT 5
ACCOUNT 6
BRANCH 2
BRANCH 1
CUSTACCT AND BRNACCT OWNER-MEMBER RELATIONSHIP
![Page 15: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/15.jpg)
DBTG Model
OWNERS MEMBERS
CUSTOMER A ACCOUNT 1, 2 AND 3
CUSTOMER B ACCOUNT 4 AND 5
CUSTOMER C ACCOUNT 6
BRANCH 1 ACCOUNT 1, 2 AND 4
BRANCH 2 ACCOUNT 3, 5 AND 6
SET COMPOSITION SUMMARY
•Segments are owned by more than one owner segment•This illustrates the fact that entity relationships within a DBTG set is limited to one –to-one or one-to-many•This avoids the need to deal with complicated many-to-many relationships
![Page 16: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/16.jpg)
DBTG Model
NAME ADDRESS CITY
Hagar Kalayaan Quezon
Ana Avenida Manila
Carlo Forbes Manila
CUSTOMER SEGMENT
NAME ASSETS CITY
Grace Park 10000000001
Caloocan
Cervantes 12333334556
Manila
BRANCH SEGMENT
NUMBER BALANCE
12340 1000
12341 100020
12342 10006
12343 123222
12344 21233
12345 123433
ACCOUNTS SEGMENT
SAMPLE RECORDS OF THE THREE SAMPLE SEGMENTS
![Page 17: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/17.jpg)
Sample Schema
![Page 18: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/18.jpg)
DBTG Data-Retrieval Facility The DBTG data manipulation language
consists of a number of commands that are embedded in a host language
Run unit System application program consisting of a
sequence of host language and DBTG command statements
Statements access and manipulate database items as well as locally declared variables
Program work-area (or user work area) A buffer storage area the system maintains for
each application program
![Page 19: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/19.jpg)
DBTG Variables Record Templates Currency pointers
Current of record type Current of set type Current of run unit
Status flags DB-status is most frequently used Additional variables: DB-set-name, DB-record-
name, and DB-data-name
![Page 20: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/20.jpg)
Example Program Work Area Templates for three record types:
customer Account branch
Six currency pointers Three pointers for record types: one each tot he most recently
accessed customer, account, and branch record Two pointers for set types: one to the most recently accessed
record in an occurrence of the set depositor, one to the most recently accessed record in an occurrence of the set account-branch
One run-unit pointer Status flags: four variables defined previously Following diagram shows an example program work area
state
![Page 21: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/21.jpg)
Example Program Work Area
![Page 22: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/22.jpg)
The Find and Get Commands find
Locates a record in the database and sets the appropriate currency pointers
get Copies of the record to which the current of run-unit points from
the database to the appropriate program work area template Example: Executing a find command to locate the
customer record belonging to Johnson causes the following changes to occur in the state of the program work area. The current of the record type customer now points to the record
of Johnson The current of set type depositor now points to the set owned by
Johnson The current of run unit now points to customer record Johnson
![Page 23: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/23.jpg)
Access of Individual Records find any <record type> using <record-field>
Locates a record of type <record type> whose <record-field>value is the same as the value of <record-field> in the <record type> template in the program work area.
Once such a record is found, the following currency pointers are set to point to that record: The current of run-unit pointer The record-type currency pointer for <record type> For each set in which that record belongs, the appropriate
set currency pointer find duplicate <record type> using <record-field>
Locates (according to a system-dependent ordering) the next record that matches the <record-field>
![Page 24: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/24.jpg)
Access of Records Within a Set Other find commands locate records in the
DBTG set that is pointed to by the <set-type> currency pointer
find first <record type> within <set-type>Locates the first database record of type <record type>belonging to the current <set-type>
find next <record type> within <set-type> which finds the next element in the set <set-
type> find owner within <set-type>
Locates the owner of a particular DBTG set
![Page 25: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/25.jpg)
Predicates For queries in which a field value must be
matched with a specified range of values, rather than to only one, we need to: get the appropriate records into memory examine each one separately for a match determine whether each is the; target of our find
statement
![Page 26: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/26.jpg)
Example DBTG Query Print the total number of accounts in the Perryridge
branch with a balance greater than $10,000
count := 0;branch.branch-name := “Perryridge”;find any branch using branch-name;find first account within account-branch;while DB-status = 0 do
beginget accountif account.balance > 10000 then count :=
count + 1;find next account within account-branch;
endprint (count);
![Page 27: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/27.jpg)
DBTG Update Facility DBTG mechanisms are available to update
information in the database. To create a new record of type <record type>
insert the appropriate values in the corresponding <record type> template
add this new record to the database by executing store <record type>
Can create and add new records only one at a time
![Page 28: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/28.jpg)
DBTG Update Facility To modify an existing record of type <record
type> find that record in the database get that record into memory change the desired fields in the template of
<record type> reflect the changes to the record to which the
currency point of <record type> points by executing
modify <record type>
![Page 29: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/29.jpg)
DBTG Update Facility To delete an existing record of type <record type>
make the currency pointer of that type point to the record in the database to be deleted
delete that record by executing
erase <record type>
Delete an entire set occurrence by finding the owner of the set and executing
erase all <record type>
Deletes the owner of the set, as well as all the set’s members. If a member of the set is an owner of another set, the
members of that second set also will be deleted erase all is recursive
![Page 30: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/30.jpg)
DBTG Set-Processing Facility Mechanisms are provided for inserting records
into and removing records from a particular set occurrence
Insert a new record into a set by executing the connect statement
connect <record type> to <set-type>
Remove a record from a set by executing the disconnect statement
disconnect <record type> from <set-type>
![Page 31: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/31.jpg)
Example disconnect Query Close account A-201, that is, delete the relationship between
account A-201 and its customer, but archive the record of account A-201
The following program removes account A-201 from the set occurrence of type depositor.The account will still be accessible in the database for record-keeping purposesaccount.account-number := “A-201”;
find for update any account using account-number.get account,find owner within depositor,disconnect account from depositor.
![Page 32: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/32.jpg)
DBTG Set-Processing Facility (Cont.) To move a record of type <record type> from
one set occurrence to another set occurrence of type <set-type> Find the appropriate record and the owner of the
set occurrences to which that record is to be moved.
Move the record by executing
reconnect <record type> to <set-type>
Example: Move all accounts of Hayes that are currently at the Perryridge branch to the Downtown branch.
![Page 33: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/33.jpg)
Example reconnect Query
customer.customer-name := “Hayes”;find any customer using customer-name;find first account within depositor;while DB-status = 0 dobeginfind owner within account-branch;get branch;if branch.branch-name = “Perryridge” thenbeginbranch.branch-name := “Downtown”;find any branch using branch-name;reconnect account to account-branch;endfind next account within depositor,end
![Page 34: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/34.jpg)
DBTG Set-Processing Facility (Cont.) A newly created member record of type
<record type> of a set type <set-type> can be added to a set occurrence either explicitly (manually) or implicitly (automatically).
Specify the insert mode at set-definition time viainsertion is <insert mode>
manual: connect <record type> to <set-type>
automatic: store <record type>
![Page 35: Lesson 2 network database system](https://reader036.fdocuments.us/reader036/viewer/2022062513/5560e9d3d8b42a086e8b521e/html5/thumbnails/35.jpg)
Set Insertion Example Create account A535 for customer Hayes at the
Downtown branch. Set insertion is manual for set type depositor and is
automatic for set type account-branch.
branch.branch-name := “Downtown”;find any branch using branch-name;account.account-number := “A-535”;account.balance := 0;store account;customer.customer-name := “Hayes”;find any customer using customer-name;connect account to depositor;