Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MGIS 641
Ko University
Learning objectives
Define the terms: Physical database design, and its major objectives. Describe five major components of physical DB design. Describe the purpose of data volume and usage analysis. Describe four basic data distribution strategies. Describe basic purposes of indexes. Define referential integrity.
Introduction
Physical database design is the last stage of DB design process. Major objective is to implement the the DB as a set of stored records, files, indexes etc that will provide adequate performance and ensure DB integrity, security and recoverability.
DB development process
Planning Enterprise data model
Analysis
Conceptual data model Logical DB design Logical data model Physical DB design Technology model Implementation DB & repositories
Volume Analysis
TREATMENT 4000 (4) (10) Estimated No. of Entity instances CHARGE 10,000 After an Avg. period of 30 days patient records are archived. There are 100 beds on Avg. A patient stays for 3 days. 4 treatments during stay. 10 charges. No. of charges outstanding for an item is 20. A physician treats 20 patients in 30 days. (20) ITEM 500 PATIENT PHYSICIAN (20) 50
1000
(30)
1000
Basic data distribution strategies : Centralised : All data are centralised at a single site.
Access problems for for remote users, data comms. cost, DB fails when central system fails.
Partitioned
Replicated
Hybrid: DB is fragmented into critical and non-critical fragments, non-critical fragments stored at only one site others at multiple sites.
A Distribution Example
SALE
SALES AREA SALESPERSON PRODUCT-ID QTY-SOLD CUSTOMERTATUS S
PRODUCT
PRODUCT-ID LOCATION QTY-STORED
FIVE TRANSACTIONS : T1 : FIND ALL SALES IN A GIVEN AREA T2: INSERT A NEW SALE T3: SELECT SALES MADE BY A GIVEN SALESPERSON T4: FIND QTY-STORED AND LOCATION FOR A GIVEN PRODUCT -ID T5: FIND LOCATION THAT HAS MORE THAN A GIVEN QTY-STORED OF A GIVEN PRODUCT-ID
A Distribution Example
T1 SITE-A SELECT PRODUCT-ID, QTYSTORED, CUSTOMER FROM SALE WHERE AREA=SITE-A (2000) INSERT SALES ROW INTO SALE FOR AREA=SITE-A (300) SITE-B SELECT PRODUCT-ID, QTYSTORED, CUSTOMER FROM SALE WHERE AREA=SITE-B (500) INSERT SALES ROW INTO SALE FOR AREA=SITE-B (300) SITE-C SELECT PRODUCT-ID, QTYSTORED, CUSTOMER FROM SALE WHERE AREA=SITE-C (500) INSERT SALES ROW INTO SALE FOR AREA=SITE-C (300)
T2
T3
SELECT PRODUCT-ID, QTYSTORED, CUSTOMER FROM SALE WHERE SALESPERSON="ANY" NO TRANSACTIONS FROM (800) THIS SITE
T4
T5
NO TRANSACTIONS FROM THIS SITE SELECT QTY-STORED, LOCATION FROM PRODUCT NO TRANSACTIONS FROM NO TRANSACTIONS FROM WHERE PRODUCT-ID="ANY" THIS SITE THIS SITE (1000) SELECT LOCATION FROM SELECT LOCATION FROM SELECT LOCATION FROM PRODUCT WHERE PRODUCT WHERE PRODUCT- PRODUCT WHERE PRODUCTPRODUCT-ID="ANY" AND ID="ANY" AND QTY-STORED> ID="ANY" AND QTY-STORED> QTY-STORED> "ANY" (2000) "ANY" (2000) "ANY" (2000)
SALE RELATION
A B C
FRAGMENT A SALES FROM SITE-A FRAGMENT A SALES FROM SITE-B FRAGMENT A SALES FROM SITE-C
A Distribution Example
USE OF FRAGMENTS
TRANSACTION ORIGIN AND FREQUENCY SITE-A (2000) T1 SITE-B (500) SITE-C (500) SITE-A (300) T2 SITE-B (300) SITE-C (300) SITE-A (800) T3 SITE-B (0) SITE-C (0) SITE-A (0) T4 SITE-B (0) SITE-C (1000) SITE-A (2000) T5 SITE-B (500) SITE-C (500) A 1 0 0 1 0 0 0.67 0 0 0 0 0 0 0 0 B 0 1 0 0 1 0 0.165 1 0 0 0 0 0 0 0 C 0 0 1 0 0 1 0.165 0 0 0 0 1 0 0 1 D 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
ALLOCATION OF FRAGMENTED RELATIONS A--> SITE-A B--> SITE-B C--> SITE C D -- SITE A POSSIBLE REPLICATION AT SITE-C
File Organisation
File organisation : A technique for physically arranging the records of a file on secondary storage, Indexes
Index : A table or other data structure that is used to determine the locations of rows in a table that satisfy a condition.
PRODUCT
PRODUCT NO
ROOM DR SR SR DR
Index tables are small and can be kept in the main memory.
Specify an index for primary key Specify index for foreign keys Specify index for nonkey attributes that are referred to in qualification, sorting, and grouping commands (e.g. WHERE, ORDER BY, GROUP BY)