Presentation is loading. Please wait.

Presentation is loading. Please wait.

THE NETWORK DATA MODEL SECTION 8 An early DBMS. Background Networks are a natural way of representing relationships among objects The network data model.

Similar presentations


Presentation on theme: "THE NETWORK DATA MODEL SECTION 8 An early DBMS. Background Networks are a natural way of representing relationships among objects The network data model."— Presentation transcript:

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


Download ppt "THE NETWORK DATA MODEL SECTION 8 An early DBMS. Background Networks are a natural way of representing relationships among objects The network data model."

Similar presentations


Ads by Google