[ 목차 ]
1. ORM 프레임워크 (OBJECT RELATIONLA MAPPING 객체 관계 매핑)
2. ORM 매핑 기법
3. 관계 유형
4. aggraegation 집합연관관계
5. COMPOSITION 복합 연관관계
6. generalization 일반화관계
7. ORM 절차
8. ORM 종류
9. 트랜잭션 인터페이스
10. 트랜잭션 특징
11. 트랜잭션 연산자
12. 트랜잭션 인터페이스 설계
1. ORM 프레임워크 (OBJECT RELATIONLA MAPPING 객체 관계 매핑)
1) 객체 관계 매핑은 관형 데이터베이스(R)와 객체 지향 프로그래밍 언어(O) 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법
2) 객체 지향 언어(ex. 자바)에서 사용하는 객체를 관계형 데이터베이스로 변환하여 테이블을 구성하는데 활용
3) ORM을 사용하면 SQL 질의어를 사용하지 않고 프로그래밍 언어(자바, 파이썬)로 객체간의 관계를 풀어낼 수 있음
4) 개발자는 좀더 직관적으로 객체간의 관계를 파악할 수 있고 비즈니스 로직에 집중 가능
5) SQL 코드를 직접 입력하지 않고 객체 지향적인 접근으로 인해 생산성이 증가
6) ORM은 독립적으로 작성되어 있고 해당 객체들을 재활용 할 수 있음
7) 단점 : ORM은 자동으로 SQL을 작성하기 떄문에 개발자가 의도한대로 작성되지 않을 수 있음
2. ORM 매핑 기법
1) 객체와 테이블 간의 변환 방법
1] 클래스/객체 -> 테이블 : 객체지향에서 클래스는 관계형 데이터베이스에서 테이블로 변환
2] 속성 -> 칼럼
3] 오퍼레이션(메소드) -> 프로시져 or 함수 : 객체의 행위를 나타내는 오퍼레이션은 관게형 db에서 프로시져 또는 함수로 변환
2) 관계와 테이블 간의 변환 방법 : 연관관계(association) : 두 클래스 간 서로 어떠한 연관을 가지고 있는 의미로 모든 오브젝트가 각자의 라이프 사이클을 지녔으며 누가 누구를 소유하지 않고 생성과 소멸이 독립적
1] 1:M : 다중도 1:M은 1관계 테이블에 있는 기본키를 M관계 테이블에 있는 외부키로 매핑
- 하위 테이블에서 기본키가 두 개 이상일 때 하나의 외부키만 가지고 중복 여부를 결정하지 않음
2] 1:1
- 접근의 빈도수가 많은 테이블로 상대방 테이블의 기본키를 외부키로 매핑
- 두 개의 테이블을 합쳐 하나의 테이블로 해도 되는지 확인 필요(불필요한 조인이 증가해 성능 저하가 발생할 수 있기 때문)
- 성능, 다른 제약사항 때문에 나누어져야 하는지 확인 필요
3] M:M : 다중도 M:M은 새로운 관계 테이블(=교차 엔터티, 교차 개체, 교차 테이블, 릴레이션 스키마)을 만들고 이 테이블에 양쪽의 테이블의 기본키를 갖도록 설계
- 1: M M:1 관계의 테이블 3개로 설계
다중도(다중성) : 하나의 인스턴스에 연관된 다른 쪽 클래스의 가능한 인스턴스의 수
3. 관계 유형
1) 식별 관계 : 상위 개체의 기본키가 하위 개체의 기본키로 전이
1] 실선, 기본키이기 때문에 반드시 존재해야 함
2] 기본키의 중복이 나타나지 않아야 함
2) 비식별 관계 : 상위 개체의 기본키가 하위 개체에 일반속성으로 전이
1] 점선, 기본키가 아니기 때문에 존재하지 않을 수 있음(NULL)
2] 일반속성이기 때문에 중복 가능
4. aggraegation 집합연관관계
1) 독립적으로 존재하는 클래스가 다른 클래스에 포함되는 경우
2) 1:M 관계 중 1관계 테이블에 있는 기본키를 M관계 테이블에 외부키로 매핑
3) 1관계 테이블에 있는 로우가 삭제되더라도 M관계 테이블에 있는 로우는 삭제되지 않음
4) 모든 오브젝트가 각자의 라이프사이클을 지니고 있으며 한 오브젝트가 다른 오브젝트를 소유하고 있는 경우
5. COMPOSITION 복합 연관관계
1) 특정 클래스가 조재하기 위해 다른 클래스를 내포
2) 1:M 관계 중 1관계 테이블에 있는 기본키를 M관계 테이블에 있는 외래키로 매핑
3) 1관계 테이블에 있는 로우가 삭제되면 M관계 테이블에 있는 로우도 같이 삭제
4) 죽음의 연관관계로 강력하게 연결된 aggregation으로 자식은 라이프 사이클을 가지지 않으며 부모 오브젝트가 사라지면 함게 소멸
6. generalization 일반화관계
1) 화살표 방향이 상위 클래스
2) 부모 클래스와 자식 클래스 간의 상속관계를 나타냄
3) 자식 클래스가 줴가 되어 자식 클래스를 부모 클래스로 일반화 하는 것을 의미하며 반대의 개념은 specialize 구체화하다 라고 표현
4) 1안 : 상위 클래스와 하위 클래스를 각각 별도의 테이블로 변환
5) 2안 : 상위 클래스가 하위 클래스의 모든 속성을 포함하여 단일 테이블로 변환
6) 3안 : 하위 클래스들이 상위 클래스의 속성을 상속 받아 각각 하위 클래스들을 테이블로 매핑
7. ORM 절차
1) 클래스를 테이블로 변환 : 클래스의 인스턴스는 테이블의 레코드로 매핑
2) 애트리뷰트를 칼럼으로 변환 : 클래스 인스턴스의 애트리뷰트는 테이블의 칼럼으로 변환
3) 클래스간 관계는 관계형 테이블 간의 관계로 변환 : 클래스간의 관계인 어소시에이션, 애그리게이션, 제너럴리제이션을 관계형 데이터베이스의 테이블 간 제약사항으로 변환
8. ORM 종류
1) JPA
1] 자바 진영의 ORM 표준
2] JPA를 사용하면 JPA 내부에서 JDBC APU를 사용해 DB와 통신
3] SQLJ : 자바 코드에 SQL문 삽입을 가능하게 하는 일련의 프로그래밍 확장판
9. 트랜잭션 인터페이스
1) 물리 데이터저장소에서 트랜잭션 인터페이스는 전체적인 데이터베이스 트랜잭션의 골격 및 인터페이스를 정의하는 활동
2) 데이터베이스 입출력과 기능적 형태로 정의
3) 트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 모두 한번에 수해되어야 할 일련의 연산들을 의미
10. 트랜잭션 특징
1) 원자성 ATONOMICTY: 트랜잭션 연산을 데이터베이스 모두 반영되든지 아니면 전혀 반영되지 않아야 함
2) 일관성 CONSISTENCY : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
3) 독립성 ISOLATION : 둘 이상의 트랜잭션이 동시에 병행 실행될 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산에 끼어들 수 없음
4) 영속성 DURABILITY : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영
11. 트랜잭션 연산자
1) COMMIT : 트랜잭션 작업이 성공적으로 끝나고 수행결과를 관리자에게 알려주는 연산
2) ROLLBACK : 트랜잭션 작업이 비정상적으로 끝나 해당 트랜잭션을 재시작 혹은 폐기하는 연산
3) RECOVERY : 트랜잭션 수행 중 장애로 인해 손상된 데이터베이스를 손상되지 이전의 정상적상태로 복구시키는 연산
12. 트랜잭션 인터페이스 설계
1) 데이터 접근 방법 및 인터페이스를 절차적으로 명세
2) 트랜잭션 인터페이스는 주로 프로그래밍 언어로 구현(JDBC, JTS)
3) C언어는 MTS가 해당
4) JDBC : 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
'자격증 > 정보처리기사 2과목' 카테고리의 다른 글
2-12장. 제품소프트웨어 패키징-제품소프트웨어 패키징 (0) | 2020.05.16 |
---|---|
2-7장. 데이터 입출력 구현-데이터 조작 프로시저 작성(1) (0) | 2020.05.13 |
2-5장. 데이터 입출력 구현-물리 데이터저장소 설계(2) (0) | 2020.05.13 |
2-4장. 데이터 입출력 구현-물리 데이터저장소 설계(1)-2 (0) | 2020.05.12 |
2-3장. 데이터 입출력 구현-물리 데이터저장소 설계(1)-1 (0) | 2020.05.12 |