Reference no: EM13168058
Write python code that will execute a list of functions with supplied parameters and report the observed runtime for each function run. Assume that the input file has a list of strings like so:
Func1, Param1, Param2, Param3
Func2, Param1
You would need to execute Func1(Param1, Param2, Param3) and Func2(Param1) reporting the runtimes for each execution. You can assume that Func1 and Func2 are already defined.
For your reference (if your python is a little rusty) -- if you need to look up the function that has been defined, you can do it as follows in python. First line looks up the function and the second line executes it with a parameter of 10.
function1 = globals()['myFunction']
function1( 10 )
In order to make this work for more than one parameter, here is how you can do it. The first line looks up the function, second line converts the string into a tuple ('1, 2, 3' into (1, 2, 3)) and the third line allows you to pass multiple parameters to the function.
Here we are assuming that myFunction2 takes three parameters. If you do not use eval, the input is a single string and not the three values that we need. If you do not use the * in the third line below, the tuple (1,2,3) would be treated as a single input and not three separate parameters.
function2 = globals()['myFunction2']
params = eval("1, 2, 3")
function2( *params )
You do not have to worry about error checking for now; you can assume that functions are pre-defined and that the number of parameters provided is correct.
Be sure to test your code.
Part 2:
- Why can't we create two different clustering indexes over the same data file or table? _
- Why can't a secondary index be sparse? (you can provide answers to A and B in your own words, no formal answer is necessary)
- Write a SQL query that corresponds to the following relational algebra expression:
? model, year (?make='Honda' (?price<10,000 (Cars)))
Would it be the same SQL query as for the following expression? If not, write a SQL query for the second expression:
? model, year (?make='Honda' OR price<10,000 (Cars))
Finally, write SQL query for
? model, year (? drevenue > 1000000 AND dstate = 'IL' (Cars ?did = id Dealer))
- Assume a B+-Tree that is using 512-byte blocks. Further assume that each child-node pointer and each indexed value take 8 bytes, thus the fan-out (or the order) of the tree is 32. Recall that order of the B-Tree refers to the number of child pointers at every internal node. Thus, every internal (non-leaf) node in the tree can contain up to 31 different values and 32 pointers to follow to the next level of the B-Tree.
- Based on the B-Tree rules, what is the smallest number of child pointers that can be stored in each non-root node? How many in-node values does that correspond to?
- Given the above assumptions, what would be the B+-Tree height if we were to index 825,000 values? Assume that the index is dense.
- For part #2 above, what is the (average) node utilization?
(this question is a little trickier than it looks, but I will accept most reasonable estimates instead of the exact answer)
- Given a B+-Tree of height 3, what is the maximum number of values it can index while still remaining at height of 3?
NOTE: There are a total of 3 levels in this tree. Textbook notation starts counting levels from zero which would then correspond to having levels (0, 1, 2).