ORM이 뭔지?

ORM ( object-relational-mapping )

  • oop 언어와 데이터를 다루는 rdbms와의 상이한 시스템을 매핑하여 쉽게 데이터 과련 oop 프로그래밍을 쉽게 하도록 하기 위한 기술이다.
  • ORM을 사용하면, 좀더 높은 생산성(빠른 개발속도, 짧은 개발기간)으로 개발할수 있다
  • 즉, ORM의 사용목적,이유는 생산성에 있다.

    sqlAlchemy

    파이썬 커뮤니티에서 유명한 ORM 이다.

    아래의 표는 orm이 web framework,connector,db에서 작동하는 방법을 보여준다
    sqlAlchemy가 다양한 곳에서 쓰이는 것을 확인할 수 있다.

    Example

    1. SQLAlchemy Engines
      
        from sqlalchemy import create_engine
        engine = create_engine('mysql+mysqldb://usr:pass@localhost/sqlalchemy')
      
    
    1. SQLAlchemy Data Types
     
        class Product(Base):
            __tablename__ = 'products'
            id=Column(Integer, primary_key=True)
            title=Column('title', String(32))
            in_stock=Column('in_stock', Boolean)
            quantity=Column('quantity', Integer)
            price=Column('price', Numeric)
    
    
    1. SQLAlchemy Relationship Patterns
      
        class Article(Base):
            __tablename__ = 'articles'
            id = Column(Integer, primary_key=True)
            comments = relationship("Comment")
    
    
        class Comment(Base):
          __tablename__ = 'comments'
          id = Column(Integer, primary_key=True)
          article_id = Column(Integer, ForeignKey('articles.id'))
      
    
    1. Mapping Classes with SQLAlchemy
      
        from sqlalchemy import create_engine
        from sqlalchemy.ext.declarative import declarative_base
        from sqlalchemy.orm import sessionmaker
    
        # create an engine
        engine = create_engine('mysql+mysqldb://usr:pass@localhost/sqlalchemy')
    
        # create a configured "Session" class
        Session = sessionmaker(bind=engine)
    
        Base = declarative_base()
      
    

    참조

    Comments