STRUCTURED QUERY LANGUAGE (SQL) AND COST ESTIMATION
Assignment 1
Predicting cost
Managing time and making accurate cost estimation of a project is the most challenging aspect of many IT related projects. It is highly impractical to establish an independent, cost-effective plan before identifying the entire project (Dashore, 2018). However, some specific clients will insist on getting the time and cost projection for a project. According to Kapoor & Gupta (2016), there are at least three methods that you can follow to provide the client with the time and cost estimations requirements. The algorithmic approach, expert judgment method, and estimate by analogies.
Algorithmic method
It involves the use of mathematical formulas in approximating the project’s cost. It depends on the project size, human resources, and any other possible requirements (Kapoor & Gupta 2016). The formulas are generated based on a past completed project, and it should include both severest, expected, and preeminent estimates (Kapoor & Gupta 2016).
Expert judgment
It evolves around seeking expert’s opinions on the anticipated projects. Experts in this context will be software developers. The consultation should be done in one group for the expert to reach a consensus cost and time estimate (Kapoor & Gupta (2016).
Analogies estimation
It implies that the anticipated project compares to the past accomplished project, which is likely to have similar and exert information. Factual information from the previous plan is generalized to estimate the current project (Kapoor & Gupta (2016).
Assignment 2
Comment
Cost and time estimation of a project is a vital and complex activity. Expenditure estimation can take different approaches uniquely when the requirements are not yet distinctly identified. The discussion describes how the sub-additive method generates the cost estimates of a project. In the discussion, the sub-additive way is a process where each segment or section of the proposed project gets a price estimate. The summation of the price estimates then generates the entire cost of the project. I believe that this is one of the practical tactics to cost estimation when there are many unknowns.
This method can take two distinct approaches: the bottom-up estimation or the top-bottom scenarios of estimates (Uzzafer, M. (2017). The bottom-up evaluation entails approximation of details at the project’s bottommost levels (Dashore, A. (2018). Then each of the estimates generates a definite average of the cost. On the other hand, top-bottom involves the estimation of significant outcomes of the projects, which is usually done by people who have had experience in the same line of the project.
The discussion has stated that both bottom-up and top-bottom estimation approaches might not generate accurate figures required for the project. Therefore, it means that creating cost estimation cannot be done exclusively when the requirements and risk assessments of a project are incomplete. There is a very high chance of the estimated cost through the sub-additive method becoming way too off. It could be too high or too low. Hence, it might not be the best tactic for cost estimation.
References
Dashore, A. (2018). Methods of Cost Estimation in Projects-Tools and Techniques. The Constructor Organization. https://theconstructor.org/construction/methods-cost-estimation/36532/
Uzzafer, M. (2017). Cost estimation of software projects: a sub-additive approach. The Journal of Modern Project Management, 4(3).
Assignment 3
Comment
The discussion begins by acknowledging that estimating the cost of a project before noting and identifying its specifics is close to impossible. The first thing that comes to mind when generating new ideas of a project is how much it will cost, and long is the project likely to last (Torrecilla-Salinas et al., 2015). The most emphasized aspect is the cost of the project and whether it will be financially manageable.
An example of an IT project provided in the discussion is a modern technology company that makes phones and intends to create new models. The company will then look at the past cost of almost similar projects and generate a cost estimation for the new project. I believe this is a good idea for a cost estimation tactic. However, by following closely on the source of information used in the discussion, my understanding of agile project management is very different.
In agile project management, many decisions depend on the progress of the project (Boiten 2017). The approach uses story points to estimate the cost of a project. Story points in project management are numbers that are used by team members to identify probable difficulties level in the project. One story point could have 5 to 11 hours of serious engagement with a project because of the projected problem. I believe that agility in project management is one of the best approaches to cost estimation because the cost of many IT projects keeps on fluctuating.
References
Torrecilla-Salinas, C. J., Sedeño, J., Escalona, M. J., & Mejías, M. (2015). Estimating, planning and managing Agile Web development projects under a value-based perspective. Information and Software Technology, 61, 124-144.
Boiten, R. (2017). The Necessity of Estimation in Software Development Projects (Master’s thesis, University of Stavanger, Norway).
Assignment 4
- Structured Query Language
There are five main types of Structured Query Language (SQL) commands. These commands search, add or remove information in the database. They are like a communication channel that enables different performing of different tasks on the database (Zygiaris 2018). They are Data Manipulation Language (DML), Data Definition Language (DDL), Transaction Control Language (TCL), Data Control Language (DCL), and Data Query Language (DQL). The Entity Relationship Diagram used in defining the different types of SQL is in the figure below.
Figure 1: Entity Relationship Diagram for car higher management system.
Data Manipulation Language (DML)
DMLs are for flexing, influencing, and controlling database records. Its central command enables one to SELECT, INSERT, UPDATE, or DELETE files of a database (Ghali & Abu-Naser 2019). Their definition can understand the functions of these commands
.
Below is an example of an update command.
–UPDATE
UPDATE staff
SET firstname= ‘Valentine’
WHERE staff_ID = ‘2’
Customer ID number 2 is where the new first name (Valentine) will be changed.
Data Control Language (DCL)
DCL provides or revokes user’s access to the database. DCL has the GRANT, DENY, and REVOKE commands. GRANT will allow a user to do certain things on the database, DENY prevents special permission from the users, and REVOKE will withdraw the access given to a specific database user (Silva et al., 2016).
Below is an example of a GRANT command.
–GRANT
GRANT SELECT, INSERT, UPDATE, DELETE ON staff TO Valentine
REVOKE UPDATE ON staff TO Valentine
In this command, the staff called Valentine will have the permission to SELECT, INSERT, UPDATE, or DELETE information on the database. In the second command, the individual named Valentine will no longer be able to delete any information on the database.
Data Definition Language (DDL)
It divis used to create and define objects in databases. CREATE, ALTER, DROP, and Rename are all used to structuring and designing the database (Silva et al., 2016). CREATE adds a new table, procedure, view, or trigger. ALTER edits the created objects in a database. DROP function removes an object in the database.
Below is an example of a CREATE command.
— CREATE
CREATE TABLE CUSTOMER (
(CUSTOMER_ID INT IDENTITY (1, 1) CONSTRAINT PK_CUSTOMER ID PRIMARY KEY,
FIRSTNAME VARCHAR (20), NOT NULL
LASTNAME VARCHAR (20) NOT NULL,
PHONE NUMBER
):
An example of ALTER command.
— ALTER
ALTER TABLE CUSTOMER
ADD ADDRESS ADDRESS LOCATION
The customer ID is the unique constraint in the code above, which means that the columns must have exceptional values. The not null means that the database will not accept any null values. In the alter command I have added the address column
Transaction Control Language (TCL)
Transactions command ensures that the completion of transactions and the data’s integrity is observed (Silva et al., 2016). It has BEGIN TRAN, COMMIT TRAN, and ROLLBACK. BEGIN TRAN starts the transaction, COMMIT TRAN binds completed operations, and ROLLBACK takes you back to the original database in case something went as unplanned.
An example of BEGIN TRAN command when I want the category ID to change to KQTT and type to DB
BEGIN TRAN
UPDATE Category
SET Category_ID = ‘KQTT’
WHERE Type IN (
SELECT Type FROM Category ID)
The BEGIN TRAN on the command above implies that I will be notified of how many results will be affected, let us say 50. By specifying using the BEGIN TRAN, I will wait for a ROLLBACK or COMMIT if I’m satisfied with the transaction or not, respectively. If the operation were wrong, I would issue a ROLLBACK transaction using the following command. This command will undo the update that I was trying to do.
BEGIN TRAN
UPDATE Category
SET Category_ID = ‘KQTT’
WHERE Type IN (
SELECT Type FROM Category ID)
ROLLBACK TRAN
SELECT type, Category_ID FROM Category
If the transaction were correct, I would issue the COMMIT command to complete the transaction. See the COMMIT command code below.
BEGIN TRAN
UPDATE Category
SET Category_ID = ‘KQTT’
WHERE Type IN (
SELECT Type FROM Category ID WHERE Type ‘DB’)
COMMIT
SELECT Type, Category_ID FROM Category WHERE Type ‘DB’
Data Query Language
DQL is used to view information on the database by using the SELECT command. SELECT is the only task that DQL performs on relational databases. When used, it retrieves specific information from the database. An example from the ERD above. This function below will generate all the category information whose payment is less than $250 from the database
SELECT payment amount, category FROM payment WHERE amount <$ 20,200;
- What is a view and when can it be used in a project
A view is a statement in the SQL database that has a predefined SQL query. A data view creates different aspects of data that are already in the data table (Pawar et al., 2016). The different views work in such a way that a particular user could be allowed to query the view while denied access to other parts of the table. An example of how to create a view from a customer table on the ERD above.
SQL > CREATE VIEW CUTOMER_VIEW AS
SELECT FIRSTNAME, STATUS
FROM CUSTOMERS
After the coding above, I can then do the regular query system as follows.
SQL > SELECT *FROM CUTOMER_VIEW;
Upon completion of the query statement, the database should then show the first name and status of the customers only. Data view can be used during a project when there are no changes to be made, and it is for generating reports only.
References
Ghali, M. J. A., & Abu-Naser, S. S. (2019). ITS for Data Manipulation Language (DML) Commands Using SQLite.
Pawar, S. S., Manepatil, A., Kadam, A., & Jagtap, P. (2016, March). Keyword search in information retrieval and relational database system: Two class view, In 2016.
Silva, Y. N., Almeida, I., & Queiroz, M. (2016, February). SQL: From traditional databases to big data. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 413-418).
Zygiaris, S. (2018). Structured Query Language (SQL): Introducing Queries. In Database Management Systems. Emerald Publishing Limited.
Assignment 5
Comment
The ERD used in this discussion is a simple one with easy to understand entities. I presume that it is about manufacturing a product where customers order the product directly. The study begins by not defining Structured Query Language (SQL), which I believe helps introduce the reader to the concept of the discussion. SQL uses different command types of a database to retrieve required records by following specific directories (Silva et al., 2016). There are two more SQL commands which have not been include in the discussion. Even though Transaction Control Language and Data Control Language were not part of the question, I believe that they are very critical database commands.
The Data Definition Language (DDL) definition is satisfactory. All the necessary commands CREATE, TRUNCATE, ALTER, and DROP under DDL have been included. The example is also distinct and quite understandable. Data Manipulation Language (DML) is satisfactory. Ghali & Abu-Naser (2019) describe DML as a command that controls database content through Insertion, Modification, and Deletion. These functions are essential because databases change from time to time to make them more current.
Data Query Language (DQL) can sometimes interlink with DQL, but it is infrequent. DQL uses SELECT as the only command (Ghali & Abu-Naser (2019). An example of the SELECT control is to SELECT customer_Name FROM Customer WHERE cost > $5000; this command will give all the customer names whose price is higher than $ 500. The discussion has described view mode as data that is not easy to manipulate, and I heartily agree.
References
Silva, Y. N., Almeida, I., & Queiroz, M. (2016, February). SQL: From traditional databases to big data. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 413-418).
Ghali, M. J. A., & Abu-Naser, S. S. (2019). ITS for Data Manipulation Language (DML) Commands Using SQLite.
Assignment 6
The discussion begins by defining the different types of SQL. The tasks that each SQL performs are then listed. However, the descriptions provided for the definitions and the various functions are brief and narrow. In giving examples, one should take a different approach. You could use each command and at least one task to elaborate on the meaning to make it more relatable. Additionally, explaining what to expect after executing the function from the ERD would make the discussion more imperative. It does not have either in-text citations or references to justify the facts stated.
The discussion did not include two additions, SQL commands, which are as crucial as those described. Transaction Command Language (TCL) is used to ensure the completion of transactions and that the data’s integrity has been observed (Silva et al., 2016). It has BEGIN TRAN, COMMIT TRAN, and ROLLBACK. The function of BEGIN TRAN is to start the transaction, COMMIT TRAN binds completed operations, and ROLLBACK takes you back to the original database in case something went wrong.
The other command not include is the Data Control Language (DDL). (DDL) provides or revoke user’s access to the database. It has the GRANT, DENY, and REVOKE commands. GRANT will allow a user to do certain things on the database. DENY prevents specific individuals from getting permission to do some stuff on the database. REVOKE will withdraw the access given to a user (Silva et al., 2016). The view is the storing of a predetermined query, which helps in performing desired selections. The example of using the database to check upcoming concerts and genres is good. Users would use it to know which show they would like to attend.
Reference
Silva, Y. N., Almeida, I., & Queiroz, M. (2016, February). SQL: From traditional databases to big data. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 413-418).