Chapter 8: Managing Schema Objects
A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are logical structures created by users to contain, or reference, their data. Schema objects include structures like tables, views, and indexes. You can create and manipulate schema objects using Oracle Enterprise Manager.
This following topics are discussed in this chapter:
|Accessing Schema Objects|
|Managing Database Resident Program Units|
|Loading Data into Tables|
Follow the steps below to access schema objects using Enterprise Manager:
Log in to Enterprise Manager Database Console by opening your browser and specifying the SYS username and password.
Click Administration and select the Tables link.
Select the flashlight icon to select a particular schema.
Select HR and click Select.
Enter emp in the Object Name field and click Go.
The objects that match your search criteria are displayed.
Tables are the basic unit of data storage in an Oracle database. They hold all user-accessible data. Each table has columns and rows. In this section, you will perform the following tasks:
|Viewing the Attributes of a Table|
|Viewing the Contents of a Table|
|Creating a New Table|
|Modifying a Table|
|Dropping a Table|
Follow the steps below to view the attributes of the HR.EMPLOYEES table:
Select the EMPLOYEES table and click View.
The Table View page appears displaying the attributes of the table including columns, constraints, and storage options.
Click the Tables link to return to the Tables property page.
Perform the steps listed below to view the contents of the HR.EMPLOYEES table:
Select the EMPLOYEES table and select View Data from the Actions drop-down menu. Click Go.
The View Data For Table page appears showing the row data in the Results section.
In this section you will create three new tables for your database: EMPLOYEES, CUSTOMERS, and ORDERS.
Click Create on the Tables property page.
The Create Table: Table Organization page appears. Select Standard, Heap Organized and click Continue.
The Create Table page appears. Enter employees in the Name field. Enter fsowner in the Schema field. Enter fsdata in the Tablespace field. Define the columns as follows and click Add 5 Table Columns.
Enter the remaining columns as follows:
The Constraints page appears. Select Primary from the drop-down menu and click Add.
The Add Primary Constraint page appears. Enter emp_id_pk in the Name field. Select EMPLOYEE_ID in the Available Columns list. Click Move to select it. Click OK.
The Create Table page appears. Click OK.
The Table page appears with an Update message indicating your table has been created.
Repeat steps 2 through 8 to create the CUSTOMERS and ORDERS tables in the FSOWNER schema as defined below.
You can use Enterprise Manager to modify tables, such as adding and deleting columns or adding constraints. In this section you will add a constraint to the EMPLOYEES table you created. You will ensure that the EMAIL_ADDRESS column contains a value by adding a NOT NULL constraint.
Follow the steps below to add a NOT NULL constraint to your EMPLOYEES table:
Select the EMPLOYEES table and click Edit.
Check the Not NULL column for the EMAIL_ADDRESS column. Click Apply.
The Edit Table page is displayed with a message confirming your update.
You can drop (delete) a table by using Enterprise Manager as follows. For the purposes of this exercise, you will create a new table and then drop the table.
Click the Tables link in the Schema section on the Administration page to access the Schema objects property page. Select Table in the Object Type drop-down menu. Enter HR in the Schema Name field and JOBS in the Object Name field. Click Go.
Select Create Like from the Actions drop-down menu. Click Go.
The Create Table page appears. Enter JOBS_HIST in the Name field. Deselect Not Null for the JOB_ID and JOB_TITLE columns. Click Constraints.
The Constraints page appears. Delete the constraints on the table by selecting each and clicking Delete. They are not needed for this exercise. Click General to return to the General page.
Click OK to create the JOBS_HIST table.
A message is displayed indicating that the table has been created.
Enter JOBS_HIST in the Object Name field and click Go.
The Tables page is displayed with the JOBS_HIST table in the Results section. Click Delete to the delete the JOBS_HIST table.
Click Yes to confirm the deletion of the table.
A message is displayed indicating the table has been deleted. Click Go to attempt to retrieve the table.
No object found is displayed in the results section indicating your table has been dropped (deleted).
Indexes are optional structures associated with tables and can be used to improve query performance. An index provides a quick access path to table data. Indexes can be created on one or more columns of a table. After an index is created, it is automatically maintained and used by the Oracle Database server. Changes to a table’s data or structure are automatically incorporated into all relevant indexes with complete transparency to the user.
In this section, you will perform the following tasks:
|Viewing the Attributes of an Index|
|Creating a New Index|
Perform the steps listed below to view the attributes of an index in your FSOWNER schema:
Click the Indexes link in the Schema section on the Administration page to access the Indexes property page.
The Indexes page appears. Enter FSOWNER in the Schema Name field and click Go.
The indexes created when you defined primary keys are displayed. Select the EMP_ID_PK index defined on the EMPLOYEES table by clicking the index name link.
The EMP_ID_PK index for the EMPLOYEES table is displayed.
Select the Indexes link to return to the Indexes property page.
Create an index on the CUSTOMER_ID column in the ORDERS table so that you can quickly access all orders for a specified customer. The index should be stored in the FSINDEX tablespace.
Perform the steps listed below to create the ORD_CUSTID_IDX index:
Select Tables for the Object Type. Enter FSOWNER in the Schema field and click Go
.The Tables page appears. Select the ORDERS table and select Create Index from the Actions drop-down menu. Click Go.
The Create Index page appears. Enter ORD_CUSTID_INDX in the Name field. Enter fsindex in the Tablespace field. Select Standard B-tree as the index type. Select the CUSTOMER_ID column by entering 1 in the Order column. Accept ASC as the Sorting Order. Click OK to create the index.
Views are customized presentations of data in one or more tables or other views. They can be thought of as stored queries. Views do not actually contain data, but instead
they derive their data from the tables upon which they are based. These tables are referred to as the base tables of the view. Like tables, views can be queried, updated, inserted into, and deleted from, with some restrictions. All operations performed on a view actually affect the base tables of the view. Views provide an additional level of security by restricting access to a predetermined set of rows and columns of a table. They also hide data complexity and store complex queries. In this section, you will perform the following tasks:
|Creating a New View|
Perform the steps listed below to access views:
Select Views in the Schema region of the Administration page. Enter HR in the Schema Name field and click Go.
The views defined on tables in the HR schema are displayed. Select the EMP_DETAILS_VIEW and click View to view its definition.
The View page is displayed showing the definition of the view.
Select the Views link.
Perform the steps listed below to create a new view:
Click Create on the Views property page.
Enter the following information and click OK.
View name: CLERK10_ORDS
SELECT order_id, customer_id, order_total FROM orders WHERE sales_clerk_id = 10
The Views page is displayed confirming the creation of your view.
Select the Database link.
You can use Enterprise Manager to manage database resident program units such as PL/SQL packages, procedures, triggers, and functions and Java sources and classes. The actions include creating and compiling the database resident program units, creating synonyms for the database resident program units, granting privileges to use the database resident program units, and showing dependencies for the database resident program units.
Click the Procedures link in the Schema section on the Administration page.
Enter hr in the Schema field click Go.
Select the ADD_JOB_HISTORY procedure. Select Grant Privileges from the drop-down menu and click Go.
Select EXECUTE as the privilege and FSOWNER as the user. Click OK.
You can use Enterprise Manager to load data into tables in batch. Batch loading is useful when you have a lot of data. You can load data from operating system files or
from other databases. You can also export data into files. One method of loading is to use control (.ctl) and data (.dat) files. These files are formatted as standard SQL*Loader files. SQL*Loader is a utility that you can use to load data from external files into tables of an Oracle database.
In this section you will load customer information into your FSOWNER.CUSTOMERS table using the load_cust.ctl file. Create a directory named $HOME/labs. Download the load_cust.zip file and unzip the load_cust.ctl and load_cust.dat files into $HOME/labs for use in this section.
Click the Load Data From File link in the Utilities section on the Maintenance page.
The Load Data: Control File page appears. Enter the full path of your control file on the database server machine. Also enter the username and password for the host machine. Click Next.
The Load Data: Data File page appears. Select The data file is specified in the control file. Click Next.
The Load Data: Load Method page appears. Accept the default of Conventional Path as the loading method. Click Next.
The Load Data: Options page appears. Select Generate log file in the Optional Files region. You can accept the default file name and path or enter a different one. Click Next.
The Load Data: Schedule page appears. Enter a name in the Job Name field and description in the Description field. Select Immediately to run the job now. Click Next.
The Load Data: Review page appears. Review your file names and loading methods. If you want to change something, you can click on the Back button. Otherwise, click Submit Job to start the loading.
The Status page appears with a message indicating Load Data Submit Successful. Click on View
This summary page should indicate that the job has succeeded. If not, you can view the log file by clicking on your job under the Logs heading or by viewing the log file directly.
You can confirm the data load by navigating to the Tables page, selecting the table, and selecting View Data as the action. Click Go.
The rows you loaded are displayed on the View Data for Table: FSOWNER.CUSTOMERS page. Click OK to return to the Tables property page.