View Javadoc

1   package uba.db;
2   
3   import java.util.Collection;
4   
5   import uba.db.table.Table;
6   import uba.db.table.TableSchema;
7   
8   /***
9    * Interfaz que deben cumplir las clases que implementan el acceso físico a los
10   * datos.
11   * 
12   * @version $Revision: 1.5 $
13   */
14  public interface Database {
15      /***
16       * Crea una nueva tabla.
17       * 
18       * @param tableSchema
19       *            es equema de la tabla a crear.
20       * 
21       * @return un objeto que representa la nueva tabla creada.
22       * 
23       * @throws TableAlreadyExistsException
24       *             esta excepción si ya existe una table con el nombre de tabla
25       *             indicado en el esquema.
26       * @throws TableCreationException
27       *             esta excepción se genera si no se pudo crear la tabla.
28       */
29      Table createTable(TableSchema tableSchema) throws TableAlreadyExistsException,
30              TableCreationException;
31  
32      /***
33       * Retorna una lista con las tablas creadas por el usuario y las tablas del
34       * sistema.
35       */
36      Collection tables();
37  
38      /***
39       * Retorna una lista con las tablas que son especiales para el sistema
40       * (catalogo).
41       */
42      Collection systemTables();
43  
44      /***
45       * Retorna una lista con las tablas creadas por el usuario.
46       */
47      Collection userTables();
48  
49      /***
50       * Retorna la tabla de nombre <i>tableName</i>.
51       * 
52       * @param tableName
53       *            el nombre de la tabla a retornar.
54       * 
55       * @throws UnknowTableName
56       *             si no existe una tabla de nombre <i>tableName</i>
57       */
58      Table tableNamed(String tableName) throws UnknowTableName;
59  
60      /***
61       * Retorna la tabla del cátalogo, que contiene a todas las tablas definidas
62       * por el usuario.
63       * 
64       * @see SystemTableSchemas#TABLES_SCHEMA
65       */
66      Table tablesTable();
67  
68      /***
69       * Retorna la tabla del cátalogo, que contiene a todos los tipos de datos
70       * disponibles.
71       * 
72       * @see SystemTableSchemas#DATATYPES_SCHEMA
73       */
74      Table dataTypesTable();
75  
76      /***
77       * Retorna la tabla del cátalogo, que contiene a todas las columnas en las
78       * tablas de usuario.
79       * 
80       * @see SystemTableSchemas#COLUMNS_SCHEMA
81       */
82      Table columnsTable();
83  
84      /***
85       * Permite determinar si la base de datos contiene una tabla de nombre
86       * <i>tableName</i>.
87       * 
88       * @param tableName
89       *            nombre de la table
90       * 
91       * @return <i>true</i> si existe una tabla con el nombre dado.
92       */
93      boolean containsTableNamed(String tableName);
94  }