Download presentation
Presentation is loading. Please wait.
Published byAleesha Lawrence Modified over 9 years ago
1
THE NETWORK DATA MODEL SECTION 8 An early DBMS
2
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
3
Conference on Data Systems Language Early 1960s American Standards Institute (ANSI) – 1971 IDS and IDMS
4
Concepts Schema Subschema Physical details
5
Records and Sets Record type Set Owner record type Member record type
6
A Bachman Diagram A Data Structure Diagram CUSTOMER PURCHASE-ORDER LINE-ITEMS SALESPERSON OWNER MEMBEROWNER MEMBER SALESPO SET CUSTPO SET POITEM SET One-to-many relationship One-to-one relationship
7
Instance or Occurrence SmithJonesBean PO #1PO #2PO #3PO #4 PensPencilsErasersEnvelopes DarwinWallace CUSTOMER SALESPERSON An Example of a Network Data Structure
8
Types of Networks Simple networks Complex networks Link record type
9
An Example of a Link Record STUDENT CLASS Thus a complex network STUDENT STUDENT- ID CLASS CLASS-ID TAKING CLASS SET ENROLLED SET SC
10
Expanded Example Sue WhiteJudy Dench PBA461 Peter Black PBE230SWA461SWE230JDA461PBB304 Botany 304English 230 Accounting 461 Converts a complex network into a simple network
11
The Model’s Relationship to Conceptual Modeling Semantics An example of a conceptual model? CUSTOMERACCOUNT HAS- ACCOUNT 1N CUST-IDNAMEADDRESSACCT #BALANCE CUST-IDNAMEADDRESSBALANCEACCT # CUSTOMERACCOUNT CUSTOMER/ACCOUNT SET
12
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
13
Representing One-to-Many Relationships CUSTOMERACCOUNT CUSTOMERACCOUNT RULE 2 For 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.
14
Transforming n-ary Relationships An example could be a three-way relationship PRODUCT DATE COUNTRY SOLD NM M
15
Must create a link record PRODUCTDATECOUNTRY LINK RECORD Product/Link Set Date/Link Set Country/Link Set RULE 3 For 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.
16
Nov. 2, 1999Jan. 15, 2000Jan. 13 2000Dec. 5, 1999 DATES LINK 1 LINK 2 LINK 3 LINK 4 Australia Canada USA Widget Clamp Gadget PRODUCTSCOUNTRIES The Database from the above example
17
Transforming Many-To-Many Relationships An manufacturer may produce many products, and any one of these products can be made by several manufacturers MANUFACTURERPRODUCT RULE 4 For each may-to-many relationship between entity sets E 1 and E 2 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 E 1 and E 2.
18
MANUFACTURERPRODUCT LREC Product/LRec SetManufacturer/LRec Set Ron Smith 450 Maple St. Gamma, Inc 68 Main St.. Bean Mfg. 26 Harris Ave. 115Widget 116Clamp 120Gadget 1 2 3 4 MANUFACTURERPRODUCT LREC
19
Data Definition Language What is the DDL? Use the DDL to define the database schema The following procedure should be used.
20
Procedure Create the conceptual data model Map the conceptual data model to network data structure diagrams Use the DDL to implement the schema
21
A schema is made up of: Schema section Record sections Set sections
22
1.Create the conceptual model CUSTOMER LINE-ITEM INVOICE HAS- INVOICE 1M 1 CONTAINS M
23
2.Map to a network structure CUSTOMER LINE-ITEM INVOICE CUSTINV INVITEM
24
3.Implement the schema 1.SCHEMA NAME IS ACCOUNTSREC 2.RECORD NAME IS CUSTOMER 3.CUST-IDTYPE ISNUMERIC INTEGER 4.NAMETYPE ISCHARACTER 15 5.ADDRESSTYPE ISCHARACTER 20 6.ACCOUNT-BALANCETYPE ISNUMERIC (5,2) 7.RECORD NAME IS INVOICE 8.INVONOTYPE ISNUMERIC INTEGER 9.DATETYPE ISCHARACTER 9 10.AMOUNTTYPE ISNUMERIC (5,2) 11.STATUSTYPE ISCHARACTER 2 12.RECORD NAME IS LINE-ITEM 13.STOCKNOTYPE ISNUMERIC INTEGER 14.DESCRIPTIONTYPE ISCHARACTER 20 15.PRICETYPE ISNUMERIC (4,2) 16.CUSTINV 17.OWNER IS CUSTOMER 18.MEMBER IS INVOICE 19.INVITEM 20.OWNER IS INVOICE 21.MEMBER IS LINE-ITEM
25
From Schema to Subschema Title division Mapping division Structure division Subschema record section Subschema set section
26
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. 01OWEDBY. 05CUST-ID. 05NAME. 05ACCOUNT-BALANCE. 01INVOICE ALL. SET SECTION. SDOWEDBY-INV
27
Data Manipulation Language What is the DML? Process records one at a time The following procedure should be used.
28
Basic Commands Navigational commands Retrieval commands Update commands Records Sets
29
Basic DML Commands FIND GET ERASE STORE MODIFY CONNECT DISCONNECT RECONNECT Command Navigation Retrieval Record Update Set Update Type
30
Some terms defined User working area Currency indicators Status flags Record templates
31
14Bean150 OWEDBY TEMPLATE 205012505-31-99 INVOICE TEMPLATE OWEDBY INVOICE OWEDBY- INVOICE RUN-UNIT CURRENCY POINTERS 10Smith100 14Bean150 16Black75 205012505-31-99 210024206-20-90 213015506-29-99 User Working Area in Primary Memory OWEDBY INSTANCES INVOICE INSTANCES Relationship of User Working Area to Database Instances
32
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
33
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
34
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
35
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
36
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
37
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
38
DISCONNECT Command MOVE 254 TO INVNO OF INVOICE FIND ANY INVOICE USING INVNO DISCONNECT INVOICE FROM CUSTINV Removing a Record from a Set
39
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
40
Set Membership Classification Set insertion class Defined by the statement: INSERTION IS Manual insertion or Automatic insertion
41
Manual Insertion Mode Must be placed by using CONNECT –CONNECT TO SET NAME IS CUSTINV. OWNER IS CUSTOMER MEMBER IS INVOICE INSERTION IS MANUAL RETENTION IS OPTIONAL Subschema Fragment
42
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
43
Automatic Insertion Mode Must be placed by using STORE –STORE 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
44
Set Retention Retention options are: –Fixed –Mandatory –Optional
45
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
46
Implementation Large size Well-defined repetitive queries Well-defined transactions Well-defined applications
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.