the network data model section 8
DESCRIPTION
THE NETWORK DATA MODEL SECTION 8. An early DBMS. Background. Networks are a natural way of representing relationships among objects. The network data model represents data in network structures of record types connected in one-to-one or one-to-many relationships. - PowerPoint PPT PresentationTRANSCRIPT
THE NETWORK DATA MODEL
SECTION 8
An early DBMS
Background
• Networks are a natural way of representing relationships among objects
• The network data model represents data in network structures of record types connected in one-to-one or one-to-many relationships
Conference on Data Systems Language
• Early 1960s
• American Standards Institute (ANSI) – 1971
• IDS and IDMS
Concepts
• Schema
• Subschema
• Physical details
Records and Sets
• Record type
• Set
• Owner record type
• Member record type
A Bachman Diagram A Data Structure Diagram
CUSTOMER
PURCHASE-ORDER
LINE-ITEMS
SALESPERSONOWNER OWNER
MEMBEROWNER
MEMBER
SALESPO SETCUSTPO SET
POITEM SET
One-to-many relationship
One-to-one relationship
Instance or Occurrence
Smith Jones Bean
PO #1 PO #2 PO #3 PO #4
Pens Pencils Erasers Envelopes
Darwin Wallace
CUSTOMER SALESPERSON
An Example of a Network Data Structure
Types of Networks
• Simple networks
• Complex networks
• Link record type
An Example of a Link Record
STUDENT
CLASS
Thus a complex network
STUDENT
STUDENT-ID
CLASS
CLASS-ID
TAKING CLASS SET
ENROLLED SET
SC
Expanded Example
Sue White Judy Dench
PB A461
Peter Black
PB E230 SW A461 SW E230 JD A461PB B304
Botany 304 English 230Accounting
461
Converts a complex network into a simple network
The Model’s Relationship to Conceptual Modeling Semantics• An example of a conceptual model?
CUSTOMER ACCOUNTHAS-
ACCOUNT1 N
CUST-ID NAME ADDRESS ACCT # BALANCE
CUST-ID NAME ADDRESS BALANCEACCT #CUSTOMER ACCOUNT
CUSTOMER/ACCOUNT SET
RULE 1
• For each entity of set E in a conceptual schema, create a record type R in the network data structure. All attributes of E are represented as fields in R
Representing One-to-Many Relationships
CUSTOMER ACCOUNT
CUSTOMER ACCOUNT
RULE 2For one-to-many relationships, the record type on the “one” side of the relationship becomes the owner, the record type on the “many” side becomes the member record type. If the relationship is strictly one-to-one, then the owner and member record types are chosen arbitrarily.
Transforming n-ary Relationships
•An example could be a three-way relationship
PRODUCT
DATE
COUNTRYSOLDN M
M
• Must create a link record
PRODUCT DATE COUNTRY
LINKRECORD
Product/Link Set
Date/Link Set Country/Link
Set
RULE 3For each n-ary relationships, n > 2, create a linking record L, and make it the member record type in n set types. Designate the owner of each set type as the record type on the “one” side of the resulting on-to-many relationship.
Nov. 2, 1999 Jan. 15, 2000Jan. 13 2000Dec. 5, 1999DATES
LINK 1
LINK 2
LINK 3
LINK 4
Australia
Canada
USA
Widget
Clamp
Gadget
PRODUCTS COUNTRIES
•The Database from the above example
Transforming Many-To-Many Relationships
•An manufacturer may produce many products, and any one of these products can be made by several manufacturers
MANUFACTURER PRODUCT
RULE 4• For each may-to-many relationship between entity sets E1 and E2 create a
link record type L and make it the member record type in two set types, of which the set type owners are the record types corresponding to E1 and E2.
MANUFACTURER PRODUCT
LREC
Product/LRec SetManufacturer/LRec Set
Ron Smith 450 Maple St.
Gamma, Inc 68 Main St..
Bean Mfg. 26 Harris Ave.
115 Widget
116 Clamp
120 Gadget
1
2
3
4
MANUFACTURER PRODUCT
LREC
Data Definition Language
• What is the DDL?
• Use the DDL to define the database schema
• The following procedure should be used.
Procedure
• Create the conceptual data model
• Map the conceptual data model to network data structure diagrams
• Use the DDL to implement the schema
A schema is made up of:
• Schema section
• Record sections
• Set sections
1. Create the conceptual model
CUSTOMER
LINE-ITEM
INVOICEHAS-
INVOICE1 M
1
CONTAINS
M
2. Map to a network structure
CUSTOMER
LINE-ITEM
INVOICE
CUSTINV
INVITEM
3. Implement the schema1. SCHEMA NAME IS ACCOUNTSREC
2. RECORD NAME IS CUSTOMER
3. CUST-ID TYPE IS NUMERIC INTEGER
4. NAME TYPE IS CHARACTER 15
5. ADDRESS TYPE IS CHARACTER 20
6. ACCOUNT-BALANCE TYPE IS NUMERIC (5,2)
7. RECORD NAME IS INVOICE
8. INVONO TYPE IS NUMERIC INTEGER
9. DATE TYPE IS CHARACTER 9
10. AMOUNT TYPE IS NUMERIC (5,2)
11. STATUS TYPE IS CHARACTER 2
12. RECORD NAME IS LINE-ITEM
13. STOCKNO TYPE IS NUMERIC INTEGER
14. DESCRIPTION TYPE IS CHARACTER 20
15. PRICE TYPE IS NUMERIC (4,2)
16. CUSTINV
17. OWNER IS CUSTOMER
18. MEMBER IS INVOICE
19. INVITEM
20. OWNER IS INVOICE
21. MEMBER IS LINE-ITEM
From Schema to Subschema
• Title division
• Mapping division
• Structure division• Subschema record section
• Subschema set section
Subschema Example
SS INVSTATUS WITHIN ACCOUNTSREC.
MAPPING DIVISION.
ALIAS SECTION.
AD RECORD CUSTOMER IS OWEDBY.
AD SET CUST-INV IS OWEDBY – INV.
STRUCTURE DIVISION.
RECORD SECTION.
01 OWEDBY.
05 CUST-ID.
05 NAME.
05 ACCOUNT-BALANCE.
01 INVOICE ALL.
SET SECTION.
SD OWEDBY-INV
Data Manipulation Language
• What is the DML?
• Process records one at a time
• The following procedure should be used.
Basic Commands
• Navigational commands
• Retrieval commands
• Update commands• Records
• Sets
Basic DML Commands
FIND
GET
ERASE
STORE
MODIFY
CONNECT
DISCONNECT
RECONNECT
Command
Navigation
Retrieval
Record Update
Set Update
Type
Some terms defined
• User working area
• Currency indicators
• Status flags
• Record templates
14 Bean 150
OWEDBY TEMPLATE
205 012505-31-99
INVOICE TEMPLATE
OWEDBY
INVOICE
OWEDBY-INVOICE
RUN-UNIT
CURRENCY POINTERS
10 Smith 100
14 Bean 150
16 Black 75
205 012505-31-99
210 024206-20-90
213 015506-29-99
User Working Area in Primary Memory
OWEDBY
INSTANCES
INVOICE
INSTANCES
Relationship of User Working Area to Database Instances
Retrieval and Update
• FIND Command
• GET Command
MOVE 105 TO CUST-ID IN CUSTOMER
FIND ANY CUSTOMER USING CUST-ID
GET CUSTOMER
A Simple Record Retrieval
MOVE 0 TO ACCOUNT-BALANCE IN CUSTOMER
FIND ANY CUSTOMER USING ACCOUNT-BALANCE
DOWHILE DB-STATUS = 0
GET CUSTOMER
(process customer record)
FIND DUPLICATE CUSTOMER USING ACCOUNT-BALANCE
END-DO
Retrieval of all Records with a Particular Characteristic
• ERASE Command
MOVE 0 TO ACCOUNT-BALANCE IN CUSTOMER
FIND FOR UPDATE ANY CUSTOMER USING ACCOUNT-BALANCE
DOWHILE DB-STATUS = 0
ERASE CUSTOMER
FIND FOE UPDATE DUPLICATE CUSTOMER USING ACCOUNT-BALANCE
END-DO
Deleting Records
• MODIFY Command
MOVE 502 TO CUST-ID IN CUSTOMER
FIND FOR UPDATE ANY CUSTOMER USING CUST-ID
GET CUSTOMER
IF DB-STATUS = 0
THEN MOVE “455 Cherry Lane, Hamilton, Ontario” TO
ADDRESS IN CUSTOMER
MODIFY CUSTOMER
ELSE (perform error routine)
END-IF
Modifying Record Contents
• STORE Command
MOVE 503 TO CUST-ID IN CUSTOMER
MOVE “James W. Smith” TO NAME IN CUSTOMER
MOVE “201 Scenic Drive, Hamilton,Ontario” TO ADDRESS IN CUSTOMER
MOVE 500.00 TO ACCOUNT-BALANCE IN CUSTOMER
STORE CUSTOMER
Adding New Records
Set Operations
• CONNECT Command
MOVE 231 TO INVNO IN INVOICE
MOVE “7/7/99” TO DATE IN INVOICE
MOVE 100.00 TO INVOICE-AMOUNT IN INVOICE
STORE INVOICE
MOVE 431 TO CUST-ID IN CUSTOMER
FIND ANY CUSTOMER USING CUST-ID
CONNECT INVOICE TO CUSTOMER
Placing a Record in a Set
• DISCONNECT Command
MOVE 254 TO INVNO OF INVOICE
FIND ANY INVOICE USING INVNO
DISCONNECT INVOICE FROM CUSTINV
Removing a Record from a Set
• RECONNECT Command
MOVE 510 TO INVNO OF INVOICE
FIND ANY INVOICE USING INVNO
MOVE 431 TO CUST-ID IN CUSTOMER
FIND ANY CUSTOMER USING CUST-ID
RECONNECT INVOICE IN CUSTINV
Changing Set Membership
Set Membership Classification
• Set insertion class
• Defined by the statement:
• INSERTION IS <insert mode>
• Manual insertion or Automatic insertion
• Manual Insertion Mode
• Must be placed by using CONNECT– CONNECT <record type> TO <set type>
SET NAME IS CUSTINV.
OWNER IS CUSTOMER
MEMBER IS INVOICE
INSERTION IS MANUAL
RETENTION IS OPTIONAL
Subschema Fragment
MOVE 231 TO INVNO IN INVOICE
MOVE “7/7/99” TO DATE IN INVOICE
MOVE 100.00 TO INVOICE-AMOUNT IN INVOICE
STORE INVOICE
MOVE 431 TO CUST-ID IN CUSTOMER
FIND ANY CUSTOMER USING CUST-ID
CONNECT INVOICE TO CUSTOMER
Placing a Record in a Set
• Automatic Insertion Mode
• Must be placed by using STORE– STORE <record type>
MOVE 431 TO CUST-ID IN CUSTOMER
FIND ANY CUSTOMER USING CUST-ID
MOVE 231 TO INVNO IN INVOICE
MOVE “7/7/99” TO DATE IN INVOICE
MOVE 100.00 TO INVOICE-AMOUNT IN INVOICE
STORE INVOICE
Placing a Record in a Set
• Set Retention
• Retention options are:
– Fixed
– Mandatory
– Optional
CUSTINV.
OWNER IS CUSTOMER
MEMBER IS INVOICE
INSERTION IS MANUAL
RETENTION IS OPTIONAL
INVITEM
OWNER IS INVOICE
MEMBER IS LINE-ITEM
INSERTION IS MANUAL
RETENTION IS OPTIONAL
Subschema Fragment
Implementation
• Large size
• Well-defined repetitive queries
• Well-defined transactions
• Well-defined applications