• Non ci sono risultati.

Data Science And Database Technology Homework 3

N/A
N/A
Protected

Academic year: 2021

Condividi "Data Science And Database Technology Homework 3"

Copied!
2
0
0

Testo completo

(1)

Data Science And Database Technology Homework 3

The following relations are given (primary keys are underlined, optional attributes are denoted as *):

CELL(CellId, x0, x1, y0, y1, CurrentPhone#, MaxCalls) TELEPHONE(PhoneNo, x, y, PhoneState)

STATE CHANGE(ChangeId, TimeStamp, PhoneNo, x, y, ChangeType) EXCEPTION LOG(ExId, CellId, ExceptionType)

The schema describes a cellular phone network. Telephones in the network are described by the TELEPHONE table. The phone state may take the values On or Active (the phone is Active if a phone call is taking place). When the phone is o↵, it is not present in the TELEPHONE table. The current position of each phone in the network is given by its x, y coordinates.

The cellular phone network is formed by cells. For the sake of simplicity, square cells are considered. Cells in the network are stored in the CELL table. Each cell position in the network is defined by the x0, y0 coordinates of its inferior left vertex and by the x1, y1 coordinates of its superior right vertex. A phone belongs to the single cell satisfying both conditions x0  x < x1 and y0  y < y1. For each cell, the number of phones currently in the cell (CurrentPhone# attribute) and the maximum number of active calls (MaxCalls attribute) are stored.

Write the triggers managing the following network state changes (insertions in the STATE CHANGE table).

1) Switching on/o↵ the phone. The change types are ‘O’ (on) and ‘F’ (o↵). When the phone is switched on, the corresponding information is stored in the TELEPHONE table. When it is switched o↵, the information should be removed. Furthermore, the cell to which the phone belongs should be identified and the current number of phones should be modified accordingly.

2) Starting a phone call. The change type is ‘C’. If the cell in which the phone is located does not exceed the maximum number of calls it can manage (MaxCalls attribute), the phone state should become ‘Active’. If instead the cell exceeds the maximum call number, the phone call cannot be initiated. In this case, the information on the ex- ception should be inserted in the EXCEPTION LOG table. The ExId attribute is a counter, which is unique for a given cell.

Write the triggers managing updates on the maximum number of active calls (updates on MaxCalls attribute in the CELL table).

3) Changing the maximum number of active calls. The maximum number of active calls related to a single cell may be reduced by the cellular phone network for managing issues (decrease of the MaxCalls value in the CELL table).

The update on the MaxCalls attribute for a single cell could cause an inconsistent situation in which the MaxCalls value in the CELL table becomes smaller than the number of currently Active phones (PhoneState=’Active’) in the considered cell. If so, the corresponding MaxCalls attribute needs to be updated with the number of currently Active phones in the considered cell.

4) Service guarantee. The cellular phone network administrator needs to guarantee a minimum level service. In particular, the maximum number of active calls, by considering all cells of the network, needs to be always greater than 30. Thus, updates on the MaxCalls attribute in the CELL table must always satisfy the constraint. When an update instruction on MaxCalls attribute in the CELL table does not satisfy this constraint, the trigger will raise an application error to disallow the instruction that activates the trigger.

(2)

Homework tasks

• Write the triggers that manage the tasks 1 to 4

• You can optionally use the script create db telefoni en.sql to create the databsae described in the exercise.

The queries listed below can be used to test the proper functioning of your triggers. You may attach the screenshots of the database state before and after executing the various queries.

Queries

• Trigger 1

– Check that the trigger (Active phone) works by inserting the following records

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (1 , sysdate , '333000010 ' , 3, 3, 'O ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (2 , sysdate , '333000009 ' , 15 , 15 , 'O ') ;

– Check that the trigger (O↵ phone) works by inserting the following records

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (3 , sysdate , '333000009 ' , 15 , 15 , 'F ') ;

• Trigger 2

– Check that the trigger works by inserting the following records

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (4 , sysdate , '333000001 ' , 3, 3, 'O ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (5 , sysdate , '333000004 ' , 5, 5, 'O ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (6 , sysdate , '333000004 ' , 5, 5, 'C ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (7 , sysdate , '333000001 ' , 3, 3, 'C ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (8 , sysdate , '333000010 ' , 3, 3, 'C ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (9 , sysdate , '333000020 ' , 4, 4, 'O ') ;

INSERT INTO S T A T E _ C H A N G E ( ChangeId , TimeStamp , PhoneNo , x , y , C h a n g e T y p e ) values (10 , sysdate , '333000020 ' , 4, 4, 'C ') ;

• Trigger 3

– Check that the trigger works by running the following update UPDATE CELL SET M a x C a l l s = MaxCalls -2;

• Trigger 4

– Check that the trigger works by running the following updated UPDATE CELL SET M a x C a l l s = MaxCalls -1;

UPDATE CELL SET M a x C a l l s = MaxCalls -10;

Riferimenti

Documenti correlati

The structural processes of integration or disintegration, such as the ones that took place in Europe after the expansion of the EU and the fall of the Soviet Union, have a

Some of these packages can model transit light curves (PYTRANSIT; PyTranSpot), RV curves (e.g., RVLIN, Wright &amp; Howard 2009 ), or even perform a joint analysis of the

La deposizione delle lignine avviene a partire dallo strato della parete secondaria più vicino alla membrana plasmatica, per poi procedere per infiltrazione a tutta la parete

- To analyze the data correlation matrix associated with the analyzed dataset go back to the main process (click on button “Process”), temporarily disable the

It is possible to find this node in a join (specify the join conditions, as in the example image) or in filter operations on the attributes of a table (WHERE conditions)... -

• An access predicate indicates, in the case of a B + Tree index, that the data is selected based on a certain attribute by descending the tree hierarchy.

The statistics are made on the number of expressed votes, the average vote and the total incomes obtained by the production company by introducing advertisement in the applications

Performing a 10-fold Stratified Cross-Validation, what is the impact the maximal gain and maximal depth parameters on the average accuracy achieved by Decision Tree.. Report at least