class_docstr: Base class for handling database operations.
  
  Args:
      name (str): The name associated with the database handler instance.
class_docstr_tok: ["Base","class","for","handling","database","operations",".","Args",":","name","(","str",")",":","The","name","associated","with","the","database","handler","instance","."]
docstr: Establishes a connection to the database.
  
  Raises:
      NotImplementedError: This method should be implemented in derived classes.
docstr_tok: ["Establishes","a","connection","to","the","database",".","Raises",":","NotImplementedError",":","This","method","should","be","implemented","in","derived","classes","."]
code: def connect(self):
      """
      Establishes a connection to the database.
  
      Raises:
          NotImplementedError: This method should be implemented in derived classes.
      """
      raise NotImplementedError()
  
file_path: evadb/evadb/third_party/databases/types.py
imports: from dataclasses import dataclass
  from typing import Generator
  import pandas
  from sqlalchemy import MetaData, Table, create_engine
  from sqlalchemy.orm import sessionmaker
label_desc: Use image node_id 2 for calling the DBHandler obj's underlying member method code with example usage: obj.connect() without return types