Lab 1.1 Exercise Answers
1.1.1 Answers
Give three examples of types of data.
Answer: The answer to this question will vary depending on your choices.
A circle, square, and triangle are all data about geometrical shapes. Your mother, father, and sister are data about your immediate family members. Fiction, comedy, cookbook, and computer are all data about types of books.
What groupings of data do you use in your daily life?
Answer: The answer to this question will vary depending on your situation.
I use my address book daily. It contains addresses and phone numbers of friends, relatives, and coworkers. I also keep a running to-do list of tasks at work, which groups together the tasks I have completed, as well as separately grouping those tasks I have yet to do.
When grouping data, each piece of data should be related to the others. A person's physical appearance is typically described by more than just brown hair; they may also have green eyes, be six feet tall, and be of the female sex. In my address book, I group together a person's name, address, and telephone number. I may keep a separate address book for my business contacts that would group together the person's name, company name, work telephone number, fax number, and email address.
Give an example of a database system you use outside of the workplace and explain how it helps you.
Answer: Again, the answer to this question will vary depending on your situation.
When I'm in a record store, I often use a computerized information kiosk to search for information about an album, such as where it is located in the store. Another example is an ATM machine, where I can inquire about my account balance.
1.1.2 Answers
What is SQL and why is it useful?
Answer: SQL, the Structured Query Language, is a standardized relational database access language. It is useful because it allows a user to query, manipulate, define, and control data in a RDBMS.
The SQL language is sanctioned by ANSI, which determines standards on all aspects of the SQL language, including datatypes. However, most relational database products, including Oracle, have their own extensions to the ANSI standard, providing additional functionality within their respective products by further extending the use of SQL.
Try to match each of the SQL commands on the left with a verb from the list on the right:
Answer: The following shows how these commands match with the appropriate verb.
1. CREATE
b.define
2. UPDATE
a.manipulate
3. GRANT
c.control
DML is used to manipulate data, with the SELECT, INSERT, UPDATE, and DELETE commands. (Note that in some of Oracle's own documentation, the SELECT command is not part of the DML language, but is considered Data Retrieval Language.) DDL is used to define objects such as tables with the CREATE, ALTER, and DROP commands. DCL is used to control access privileges in a RDBMS, such as with the GRANT and REVOKE commands to give or remove privileges. These SQL commands are written and executed against the database using a software program. In this workbook, Oracle's SQL*Plus program or iSQL*Plus with your Web browser is used to communicate these commands to the RDBMS. The use of SQL*Plus and SQL commands will be covered in Chapter 2, "SQL: The Basics."
- Why do you think it is important to control access to data in a
database?
Answer: Data can contain sensitive information to which some users should have limited access privileges. Some users may be allowed to query certain data but not change it, while others are allowed to add data to a database, but not delete it. By controlling access to data, the security of the data is assured for all users. You learn about safeguarding your data in Chapter 14, "Security."
1.1.3 Answers
- How is data organized in a relational database?
Answer: Data is organized by placing like pieces of information together in a table that consists of columns and rows.
For example, the data found in a library is typically organized in several ways to facilitate finding a book. Figure 1.6 shows information specific to books. The data is organized into columns and rows; the columns represent a type of data (title vs. genre), and the rows contain data. A table in a database is organized in the same way. You might call this table book as it contains information related to books only. Each intersection of a column and row in a table represents a value.
Figure 1.6 BOOK table.
Searching for a book by location might yield this excerpt of data shown in Figure 1.7. This set of columns and rows represents another database table called location, with information specific to locations in a library.
Figure 1.7 LOCATION table.
The advantage to storing information about books and their locations separately is that information is not repeated unnecessarily, and maintenance of the data is much easier.
For instance, two books in the BOOK table have the same location_id, H24. If the floor, section, and shelf information were also stored in the book table, this information would be repeated for each of the two book rows. In that situation, if the floor of location_id H24 changed, both of the rows in the BOOK table would have to change. Instead, by storing the location information separately, the floor information only has to change once in the location table.
The two tables (BOOK and LOCATION) have a common column between them, namely location_id. In a relational database, SQL can be used to query information from more than one table at a time, making use of the common column they contain by performing a join. The join allows you to query both the BOOK and location tables to return a list of book titles together with floor, section, and shelve information to help you locate the books easily.
- Do you think it's possible to have a table with no rows at
all?
Answer: Yes, it is possible, though clearly it is not very useful to have a table with no data.
- Figure 1.5 displays a listing of an employee and its
respective department table. Identify the columns you consider to be primary
keys and foreign keys for the tables.
Answer: The primary key of the Employee table is the Employee_ID. The primary key of the Department table is Dept_No. The DEPT_NO is also the foreign key column of EMPLOYEE table and is common between the two tables.
In the DEPT_NO column of the EMPLOYEE table you can ONLY enter values that exist in the DEPARTMENT table. The DEPARTMENT table is the parent table from which the child table, the EMPLOYEE table, gets its DEPT_NO values. Establishing a foreign key relationship highlights the benefit of referential integrity. Only valid primary key values from the parent table are allowed in the child's foreign key column, therefore avoiding orphan rows (child rows without parent rows). For example, you cannot enter a DEPT_NO of 10 in the EMPLOYEE table if such a value does not exist in the DEPARTMENT table.
Note that the Department table contains one row with the department number of 60, which does not have any corresponding employees. The referential integrity rule allows a parent without child(ren), but does not allow a child without a parent because this would be considered an orphan row. You will learn how to establish primary key and foreign key relationships in Chapter 11, "Create, Alter, and Drop Tables."