# Presentation: 454440

## Something about Database:

- Database is not merely a collection of data, it provides an environment in which the data can be accessed, managed, and updated easily and safely.
- Advantages of using a DBMS:
- Data independence
- Efficient data access
- Data integrity and security
- Data administration
- Concurrent access and crash recovery
- Reduced application development time

## Database Classification

**Relational Database**: ACCESS, ORACLE, RDB, etc.
- The most widely used kind of database. Data are stored as cells in tables. SQL is the standard data manipulation language(DML). It is easy to understand and apply.
- Data types are fixed, and limited.
**Object-oriented database**: OBJECTIVITY, VERSANT, OBJECTSTORE, etc.
- Newly emerged with the wide adoption of object-oriented languages. Closely coupled to the OO programming languages. Data are stored in different ‘objects’ in the database. It provides convenient way to realize permanent data capability in an OO language.

## Database Classification II

- Data types are defined by the user. Data are not stored in tables.
**Object_Relational Database**: Newer versions of Oracle and other commercial database systems
- User can define his own data types. Data with new data types are stored in tables.

## RunI Production Database

- “*The main purpose of the DØ Production Database is to keep the history of data processing by DØ Offline software and the relevant history of the raw data from which it came. It is also a central repository for luminosity information relevant to this data*.”
- Key Tables in the Production Database:
**RUN**: relevant book-keeping information about a run
**RAW_FILE, DST, STRM_DST, STRM_STA, FILT_DST, FILT_STA, MDST, STRM_MDST, FILT_MDST, MSTA, STRM_MSTA, FILT_MSTA**: 13 file types.
- ...

## Comparison of the Old and the New

## PDB Utilities:

- Here are the utilities provided with the old database:
- Miscellaneous Utilities:
- *GEN_TO_VMS*     ?PDB_LIST_FILES?     LIST_GLOBAL_RUNS
-   GET_RUN_TIME     PDB_RUNFILES         PDB_TRIG*GERS
-   PDB_FIND_STA      PDB_FIND_RAW        PDB_PART_TAPE
- *PDB_TAPES_GT*   PDB_TAPEFILES        PDB_TAPEFILES_GT
- *PDB_REPORT*      *RECO_STATS*          *RECO_VER_STATS*
- Luminosity Utilities:
- *PDB_FILE_LUM*     GET_FILE_LUM      GET_FILT_LUM
- GET_TRIG_LUM        GET_RUN_INFO      GET_RUN_LUM
- RUN_FILT_LUM        RUN_TRIG_LUM    *STRM_STA_REP*ORT*
- *DB_DISPLAY*

## Why use Python?

-  Python is an emerging script language, based on the syntax of C. It is gaining popularity in different areas. Like libraries in other languages, Python has a vast array of modules for different purposes. Python is very similar to Perl.
- Supported in D0. Python is installed on D0 SGI machines. The module ‘dcoracle’ is installed.
- An interpretive language, easy to test and debug.

## Current Status:

- What has been done:
- The ‘main body’ of each utility has been programmed.
- Database tables has been created by Sailesh, but has not been populated with data. The table structure remains almost identical to the old one, with some unused tables omitted.

## What remains to be done:

- Populate the ORACLE database with old data.
- Finish the output format of each of the Python Utilities.
- Debugging ...
- Any more utilities to be added? Any of the utilities not necessary?