전체 글 2596

[5장] 연관관계 매핑 기초

단방향 연관관계아래 그림의 다대일 단방향 관계는 다음과 같습니다.회원과 팀 객체가 있음회원은 하나의 팀에만 소속될 수 있음회원과 팀은 다대일 관계객체 연관관계에서는 Member.team 필드를 통해서 팀을 알 수 있지만 반대로 팀은 회원을 알 수 없기 때문에 단방향 관계반면, 테이블 연관관계에서는 회원 테이블의 TEAM_ID 외래 키를 통해 회원과 팀을 조인할 수 있고 반대로 팀과 회원도 조인할 수 있으므로 양방향 관계  부연 설명참조를 통한 연관관계는 언제나 단방향객체 간에 연관관계를 양방향으로 만들고 싶은면 반대쪽에도 필드를 추가해서 참조를 보완해야 함양쪽에서 서로 참조하는 것을 양방향 연관관계라고 부르지만 정확하게는 양방향 관계가 아니라 서로 다른 단방향 관계 2개 객체는 참조로 연관관계를 맺는 반..

[과목 I 1장 5절] 식별자

1. 식별자 개념엔티티는 인스턴스들의 집합이므로, 이들을 구분하기 위해 식별자(Identifier)라는 논리적 이름을 사용식별자란 하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 함 2. 식별자의 특징주식별자일 경우 다음과 같은 특징을 가짐유일성: 주식별자에 의해 엔터티 내 모든 인스턴스들이 유일하게 구분되어야 함최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함불변성: 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함존재성: 주식별자가 지정이 되면 반드시 값이 들어와야 함 대체식별자의 특징은 주식별자의 특징과 일치외부식별자의 경우 주식별자 특징과 일치하지 않으며 참조 무결성 제약 조..

[과목 I 1장 4절] 관계

1. 관계의 개념 가. 관계의 정의관계 (Relationship)을 사전적으로 정의하면 상호 연관성이 있는 상태데이터 모델에서 관계는 `엔터티 인스턴스들 사이에 논리적 연관성을 부여하는 것으로, 이는 존재의 상태나 특정 행위의 형태` 나. 관계의 페어링관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것 (페어링)이고, 이 것의 집합을 관계로 표현한다는 것엔터티 내에 인스턴스와 인스턴스 사이에 관계가 설정된 occurrence를 관계 페어링이라고 함엔터티가 인스턴스의 집합을 논리적으로 표현했다면, 관계는 관계 페어링의 집합을 논리적으로 표현한 것 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있을 경우 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있음  2. 관계의 분류관계를 연결함에 있어 ..

[과목 I 1장 3절] 속성

1. 속성의 개념속성 (Attribute)이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의 가능데이터 모델링에서 속성은 `업무에 필수적인 인스턴스로 관리되며, 의미상으로 더 이상 분리할 수 없는 최소 단위의 데이터`를 의미업무상 관리하기 위한 최소의 의미 단위로 생각할 수 있고, 이 것은 엔터티에서 한 분야를 담당하고 있음  속성의 정의를 정리해 보면 다음과 같음업무에서 필요로 함의미상 더 이상 분리되지 않음엔터티를 설명하고 인스턴스의 구성요소가 됨 2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔터티, 인스턴스, 속성, 속성값의 관계엔터티에는 두 개 이상의 인스턴스가 존재하고, 각각의 엔터티는 고유한 성격을 표현하는 속..

[과목 I 1장 2절] 엔터티

1. 엔터티의 개념데이터 모델을 이해할 때 가장 명확하게 이해해야 하는 개념 중에 하나가 바로 엔터티 (Entity)엔터티에 대해서 데이터 모델과 데이터베이스에 권위자가 정의한 사항은 다음과 같음변별할 수 있는 사물 - Peter Chen데이터베이스 내에서 변별 가능한 객체 - C.J Date정보를 저장할 수 있는 어떤 것 - James Martin정보가 저장될 수 있는 사람, 장소, 물건, 사건, 개념 등 - Thomas Bruce 위 정의들의 공통점은 다음과 같음엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당엔터티는 업무상 관리가 필요한 관심사에 해당엔터티는 저장이 되기 위한 어떤 것 (Thing) 종합하면 엔터티란 `업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (T..

[과목 I 1장 1절] 데이터 모델의 이해

1. 모델링의 이해 가. 모델링의 정의사람이 살아가면서 접할 수 있는 다양한 현상들이 사람, 사물, 개념 등에 의해 발생된다고 했을 때, 모델링은 이것을 표기법에 따라 표기하는 것 자체를 의미현실 세계를 추상화, 단순화, 명확화 하기 위해 일정한 표기법에 의해 표현한 기법 나. 모델링의 특징모델링은 추상화, 단순화, 명확화라는 3대 특징으로 요약 가능추상화: 현실세계를 일정한 형식에 맞추어 표현한다는 의미단순화: 복잡한 현실 세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념명확화: 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것 정보시스템 구축에서 모델링은 계획, 분석, 설계 단계에서 업무를 분석하고 설계할 때, ..

[4장] 엔티티 매핑

@EntityJPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 함@Entity가 붙은 클래스는 JPA가 관리하는 것으로 엔티티라 부름 @Entity 적용 시 주의사항은 다음과 같음기본 생성자는 필수final 클래스, enum, interface, inner 클래스에는 사용할 수 없음저장할 필드에 final을 사용하면 안 됨 속성기능기본값nameJPA에서 사용할 엔티티 이름을 지정보통 기본값인 클래스 이름을 사용다른 패키지에 이름이 같은 엔티티 클래스가 있다면 name을 지정해서 충돌하지 않도록 해야 함설정하지 않을 경우 클래스 이름을 그대로 사용 @Table@Table은 엔티티와 매핑할 테이블을 지정 속성기능기본값name매핑할 테이블명엔티티 이름을 사용catalogcat..

[3장] 영속성 관리

개요EntityManager는 이름 그대로 엔티티를 관리하는 관리자로 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리합니다.개발자 입장에서 EntityManager는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 됩니다. 엔티티 매니저 팩토리와 엔티티 매니저복습하자면 EntityManagerFactory를 생성하는 비용은 비싼 편에 속하기 때문에 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 빈으로 등록하여 하나만 생성EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook") 그리고 필요할 때마다 EntityManagerFactory에서 E..

[2장] JPA 시작

객체 매핑 시작회원 테이블이 다음과 같이 정의되었다고 가정하겠습니다.  그리고 회원 클래스가 다음과 같이 정의되었다고 가정하겠습니다.  JPA를 사용하려면 가장 먼저 회원 클래스와 회원 테이블을 매핑해야 하고 이를 위해 회원 클래스에 JPA가 제공하는 매핑 어노테이션을 추가하겠습니다.  매핑 정보회원 객체회원 테이블클래스와 테이블MemberMEMBER기본 키idID필드와 컬럼usernameNAME필드와 컬럼ageAGE 부연 설명@Entity: 클래스를 테이블과 매핑한다고 JPA가 알리며 이렇게 @Entity가 사용된 클래스를 엔티티 클래스라고 부름@Table: 엔티티 클래스에 매핑할 테이블 정보를 알려주며 여기서는 name 속성을 사용해서 Member 엔티티를 MEMBER 테이블에 매핑함@Id: 엔티티 ..

[Programmers] 경사로의 개수

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/214290 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 행렬 DP 문제였습니다. 알고리즘은 다음과 같습니다.1. 격자의 각 칸을 하나의 상태로 보고, d 수열 한 번의 이동을 전이로 표현합니다. 2. 각 상태에서 시작했을 때 경사 이동 한 번에 따른 이동 가능 경로의 수를 계산하여 전이 행렬 M를 구성합니다. 3. k번 연속해서 경사 이동을 수행한 후의 결과를 구합니다.2번에서 구한 전이 행렬 M을 k번 제곱한 M^k 4. 격자 내 모든 출발 상태에서의 경로 수를 Mk 행렬의 모..