Presentation is loading. Please wait.

Presentation is loading. Please wait.

Distributed Database Management Systems

Similar presentations


Presentation on theme: "Distributed Database Management Systems"— Presentation transcript:

1 Distributed Database Management Systems
Lecture 25

2 Distributed Database Management Systems
Virtual University of Pakistan

3 In Previous Lectures: time 1:40-230
Reasons for Fragmentation Maximizes local access Reduces table size, etc. PHF using the SQL Server on same machine

4 In Previous Lectures--2:00
DDBS design is a team effort Involves Domain Experts DDBS Experts Network Experts

5 In Previous Lectures Implemented PHF in a Banking Environment (around 3: 40) DDBS layer is superimposed on the client sites (4:00) Actual Data resides with the local sites (4:35)

6 Today’s Lecture Derived Horizontal Fragmentation

7 Derived Horizontal Fragmentation
Fragmenting/ Partitioning a table based on the constraints defined on another table. Both tables are linked with each other through Owner-Member relation

8 Time: 5:36 a, b, c, d p, q, r, s, a TABLE1 TABLE2 Link Owner Member

9 Scenario (around 7:25) Link Owner titleId, titleName, sal Member TITLE
empId, empName, empAdres, titleId titleId, titleName, sal EMP TITLE Link Owner Member

10 Why DHF Here (8: 50) Employee and salary record is split in two tables due to Normalization Storing all data in EMP table introduces Transitive Dependency That causes Anomalies

11 PHF of TITLE table, around 11:00
Predicates defined on the sal attribute of TITLE table p1 = sal > and sal <= 20000 p2 = sal > and sal <= 50000 p3 = sal > 50000

12 Conditions for the TITLE Table (11:58)
TITLE1 =  (sal > and SAL ≤30000) (SAL) TITLE2 =  (sal > and SAL ≤50000) (SAL) TITLE3 =  (sal > 50000) (SAL)

13 Tables created with constraints: 12:20
create table TITLE1 (titleID char(3) primary key, titleName char (15), sal int check (SAL between and 20000)) create table TITLE2 (titleID char(3) primary key, titleName char (15), sal int check (SAL between and 50000)) create table TITLE3 (titleID char(3) primary key, titleName char (15), sal int check (SAL > 50000))

14 TITLE TITLE3 TITLE1 TITLE2 titleID titleName Sal T01 Elect. Eng 42000
Sys Analyst 64000 T03 Mech. Eng 27000 T04 Programmer 19000 TITLE3 TITLE1 titleID titleName Sal T02 Sys Analyst 64000 titleID titleName Sal T04 Programmer 19000 TITLE2 titleID titleName Sal T01 Elect. Eng 42000 T03 Mech. Eng 27000

15 EMP table at local sites (14:45)
create table EMP1 (empId char(5) primary key, empName char(25), empAdres char (30), titleId char(3) foreign key references TITLE1(titleID))

16 Natural Join with Owner Fragments
Time 15:40 PHF on Owner titleId, titleName, sal TITLE Link empId, empName, empAdres, titleId EMP Member Natural Join with Owner Fragments

17 Referential Integrity Constraint (18:30)
Null value in the EMP1.titleId is allowed This violates the correctness requirement of the Fragmentation, i.e., it will violating the completeness critetion

18 Tighten Up the Constraint Around 20:00
Further we need to impose the “NOT NULL” constraint on the EMP1.titleID Now the records in EMP1 will strictly adhere to the DHF

19 Revised EMP1 Definition(21::00)
create table EMP1 (empId char(5) primary key, empName char(25), empAdres char (30), titleId char(3) foreign key references TITLE1(titleID) not NULL)

20 Defining all three EMP tables:21:20
create table EMP1 (empId char(5) primary key, empName char(25), empAdres char (30), titleId char(3) foreign key references TITLE1(titleID) not NULL) create table EMP2 (empId char(5) primary key, empName char(25), empAdres char (30), titleId char(3) foreign key references TITLE2(titleID) not NULL) create table EMP3 (empId char(5) primary key, empName char(25), empAdres char (30), titleId char(3) foreign key references TITLE3(titleID) not NULL)

21 Implementing same scenario as PHF 22:10

22 PHF of EMP at different sites (22:30)
create table EMP1 (empId char(5) primary key check (empId in ('Programmer')), empName char(25), empAdres char (30), titleId char(3))

23 create table EMP2 (empId char(5) primary key check (empId in (‘Elect
create table EMP2 (empId char(5) primary key check (empId in (‘Elect. Engr’,’Mech. Engr’)), empName char(25), empAdres char (30), titleId char(3)) create table EMP3 (empId char(5) primary key check (empId in (' Sys Analyst ')), empName char(25), empAdres char (30), titleId char(3))

24 Adding a new record in TITLE
(23:10) TITLE TITLE titleID titleName Sal T01 Elect. Eng 42000 T02 Sys Analyst 64000 T03 Mech. Eng 27000 T04 Programmer 19000 titleID titleName Sal T01 Elect. Eng 42000 T02 Sys Analyst 64000 T03 Mech. Eng 27000 T04 Programmer 19000 T05 Assist Supr 16000 New Record

25 Time 24:00 All three predicates of PHF defined in the two slide a couple of slides ago

26 May be: 24:40 create table EMP1 (empId char(5) primary key check (empId in ('Programmer‘, ‘Assist Supr’)), empName char(25), empAdres char (30), titleId char(3))

27 Original EMP Table EMP empId empName empAdres titleId E1 T Khan Multan
W Shah Islamabad T02 E3 R Dar T03 E4 K Muhammad Lahore T04 E5 F Sahbai E6 A Haq E7 S Farhana E8 M Daud Jhelum EMP

28 DHFs of EMP Table

29 EMP1 EMP3 EMP2 empId empName empAdres titleId E4 K Muhammad Lahore T04
W Shah Islamabad T02 E5 F Sahbai Lahore E8 M Daud Jhelum EMP2 empId empName empAdres titleId E1 T Khan Multan T01 E3 R Dar Islamabad T03 E6 A Haq E7 S Farhana Lahore

30 Transactional Replication (30:30)

31 Data replicated as the transaction executes
Preferred in higher bandwidth and lower latency Transaction is replicated as it is executed

32 Begins with a snapshot, changes sent at subscribers as they occur or at timed intervals
A special Type allows changes at subscribers

33 Lets do it From the Enterprise Manager, select Replication, after a couple of nexts, we get this screen

34

35

36

37

38

39

40 Publication has been created that can be viewed from Replication Monitor or from Replication, like this

41

42 It has also created snapshot and log reader agents, which won’t work until we create a subscription.
For this, we select the publication from replication monitor, right click it, then select Push new subscription

43

44

45 You select the particular database where you want to subscribe, we have created a new one

46

47 On next slide is asks the schedule for Distributor

48 A couple of more nexts and then

49 After this we run the snapshot agent, that creates a snapshot, you can verify this from snapshot agent history, or you can go to subscriber database and have a look, like this

50

51 We delete a record from our publication and we see that it is expressed in

52

53 This will be automatically be transferred to Subscription.
If this activity could not be performed on subscriber, then the replication monitor will generate an error. You have to trap it and tune your application

54 Merge Replication

55 From replication, start a new publication, a few nexts, and once again our old familiar screen

56

57

58 After a few nexts, the merge publication will be created

59

60 Now you execute the snapshot agent of this replication
It will create the snapshot, then you subscribe a database We find the original data in the subscriber After this if we make any change on either side, it will be reflected on the other side

61 In case of merge replication, we have to be careful about the constraints, like Primary Key, or other constraints


Download ppt "Distributed Database Management Systems"

Similar presentations


Ads by Google