class_docstr: Database for `PreprocessingCache` class.
  Includes low-level idea of caching pipeline preprocessor items using relational database.
  
  :param cache_dir: path to the place where cache files should be stored.
class_docstr_tok: ["Database","for","`","PreprocessingCache","`","class",".","Includes","low-level","idea","of","caching","pipeline","preprocessor","items","using","relational","database",".",":","param","cache_dir",":","path","to","the","place","where","cache","files","should","be","stored","."]
docstr: Initializes DB working table.
docstr_tok: ["Initializes","DB","working","table","."]
code: def _init_db(self):
      """
      Initializes DB working table.
      """
      with closing(sqlite3.connect(self.db_path)) as conn:
          with conn:
              cur = conn.cursor()
              cur.execute(
                  (
                      f"CREATE TABLE IF NOT EXISTS {self._main_table} ("
                      "id TEXT PRIMARY KEY,"
                      "encoder BLOB,"
                      "imputer BLOB"
                      ");"
                  )
              )
  
file_path: FEDOT/fedot/core/caching/preprocessing_cache_db.py
imports: import pickle
  import sqlite3
  from contextlib import closing
  from typing import Dict, Optional, Tuple
  from fedot.core.caching.base_cache_db import BaseCacheDB
  from fedot.core.operations.evaluation.operation_implementations.data_operations.categorical_encoders import OneHotEncodingImplementation
  from fedot.core.operations.evaluation.operation_implementations.data_operations.sklearn_transformations import ImputationImplementation
  from fedot.preprocessing.preprocessing import DataPreprocessor
label_desc: Use image node_id 4 for calling the PreprocessingCacheDB obj's underlying member method code with example usage: obj._init_db() without return types