U E D R , A S I H C RSS

졸업논문/본론

관계형��터베�스� 기능

관계형 ��터베�스는 관계형 모�� 따� 논리�으로 연관� 있는 ��터를 모아놓� 것�다. 관계란 n-tuple� 한 줄 씩 배열� 것으로, 줄� 배열� 순서는 관계없고, 모든 줄� 구별할 수 있어야 한다.11 ��터베�스 관리 시스템(DBMS)는 ��터베�스를 구성, 변경, 조회하는 프로그램� 모아 놓� 것�다.12 현재까지 관계형 DBMS가 많� 쓰�고 있는�, �는 관계를 테�블로 나타내고 키를 �용해 정보를 연결하는 특징� 가진다.11 SQL� 관계형 ��터베�스� ��터를 �성,조회,변경하는 언어로 ANSI/ISO표준�다.13 SQL� �용하면 ��터베�스 테�블 �성�서부터 ��터 추가, 삭제, 변경, 조회는 물론�고 여러 건� 대한 트랜잭션처리까지 가능하다.

웹 애플리케�션 개발�가 가장 많� 쓰는 기능� SQL� �용하여 ��터베�스 내용� 삽입, 삭제, 수정, 조회하는 것�다. 그 중�� ��터를 조회하는 SQL문� 다양한 구조를 가진다. 기본 구조는 select from �다. 여기서 from절� 테�블� 여러 번 나오는 경우 조� 연산� 수행한다. 조� 연산� 다른 테�블 �는 같� 테�블�리 가능하다. select from where문� 사용하면 where절� 있는 조건� 만족하는 ��터만 조회한다. aggregate function� 사용하면 �하는 결과를 좀� 쉽게 얻� 수 있다. ��는 개수(count), 합계(sum), 최소(min), 최대(max), �균(avg)� 있다. aggregate function� group by문� 사용하면 그룹 단위로 결과를 얻는다. group by절�는 having� �용해 조건� 제한할 수 있다. �한 순서를 지정하는 order by문과 집합 연산� union, intersect, except 등� 있다. where절 �하� 다시 SQL문� 나타나는 경우를 중첩질��고 한다. 중첩 질�를 사용할 때는 특별히 (not) exist, (not) unique와 같� 구문� 사용할 수 있다.

��터를 삽입,삭제,변경할 때는 조회하는 SQL� 비해 하면 단순하다. 삽입�는 insert into value 구문�, 삭제는 delete from where구문�, 변경� update set where구문� 사용한다. 삭제와 변경시�는 중첩 질�를 사용할 수 있다.

Django

Django는 오픈 소스 프로�트로 code.djangoproject.com/browser/django �서 전체 소스코드를 확�할 수 있다. 문서� 따르면 django ��터베�스 API는 "SQL문� 효율�으로 사용하고, 필요할 때는 알아서 join연산� 수행하는 강력한 구문� 가졌으며, 사용�가 필요할 경우 �접 SQL문� 작성할 수 있�� 지�"5한다. 추�화� 구문� 사용하��� ��터는 관계형 ��터베�스� 저장하게 �는�, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같� DBMS를 사용할 수 있다.

Django는 �메� 언어� python� �향� 많� 받는다. Python� "��� �체지향"10 언어로 많� 소프트웨어르 만드는 � 사용할 수 있으며, django와 같� 소프트웨어를 만드는 프레임워�로� �리 쓰�다. �미 NASA�서 python� 사용하고 있으며, Google�서는 python� java와 �불어 주류언어로 사용하고 있다. Django가 ��터베�스를 추�화하고, 개발 �중� 변경 사항� ��화하여 처리할 수 있는 까닭� python� 있다.

Django� 설계 철학� 한 마디로 DRY(Don't Repeat Yourself)�다. 확연히 구분할 수있는 ��터는 분리하고, 그렇지 않� 경우 중복� 줄�고 �반화한다. ��터 � 아니� 개발� 있어서� 웹 프로그래� 전반부와 후반부를 � 번 작업하지 않는다. 즉 웹 애플리케�션 개발�는 SQL� 사용하는 방�� �메� 언어� 제공하는 프레임워�� 숨어 보�지 않기 때문� 프로그램� ��으로 쉽게 바뀔 수� 빠르게 개발할 수 있다. �한 후반부 ��터 모�� 바뀌면 프레임워��서 전반부� 사용��게 보�는 부분� ��으로 바꾸어준다. �러한 설계 철학� 바탕으로 기민하게 웹 애플리케�션� 개발할 수 있다.

Django로 구현해본 안전관리시스템

Django� ��터베�스 추�화 �가

기본�으로 지� �는 레코드 삽입, 삭제, 변경� ��으로 사용� 화면까지 만들어주는 장�� 가진다. 대부분 웹 애플리케�션� 레코드를 한 건씩 입력하는 �터페�스를 가지기 때문�, 개발 전반부� 걸친 ��터 삽입, 삭제, 변경� ��화할수 있기 때문�다. 특히 삽입, 변경� 저장�란 단� 개�으로 보고 save메소드로 추�화하였다. �한 삭제는 관련� 레코드를 함께 지워주는 기능까지 제공한다. �러한 기능� Model�래스� 정�� ��터 타입� 따� ��으로 �루어진다. 따�서 삽입, 삭제, 변경 SQL문� 실행하는 �터페�스� 많� 노력� 기울�지 않고 기민하게 전체 시스템� 설계함� 집중할 수 있다.

레코드를 검색할 때는 기본�으로 간단한 질�를 처리할 수 있는 함수들� 제공한다. 앞서 살펴본 바와 같� �접 관계를 가지는 테�블 사�� 조� 연산� Model�래스� 메소드를 �용해서 추�화�어 있다. 하지만 그 밖� 경우�는 �접 SQL문� 작성하여 ��터를 얻어와야 하기 때문� django를 사용하��� � ��� 없다. �한 추�화� Model�래스� 메소드는 기본�으로 모든 레코드 �성� �어오기 때문� 시간, 공간 측면�서 비효율�� 수 있다. 마지막으로 SQL� aggregate function등� 대부분 추�화하지 않았기 때문�, � 역시 SQL문� 작성해야 하는 번거로움� 있다.

다행히 django�서는 CLI와 마찬가지로 �접 SQL문장� 수행할 수 있는 �터페�스를 제공한다. �한 �메� 언어� python� �용하면 CLI를 �용해 ��터베�스와 연�할 수� 있다. 종합�으로 기능�으로 지�� 불가능한 면� 없지만, 검색 측면�서 좀� 많� 추�화가 필요하다고 �가할 수 있다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:07
Processing time 0.0059 sec