본문 바로가기

데이터베이스

(8)
JPA 공부 - 5 2021/01/29 - [IT/데이터베이스] - JPA 공부 - 4 5. 연관관계 매핑 기초 객체는 참조(주소)를 사용해서 관계를 맺고 테이블은 외래 키를 사용해서 관계를 맺는다. 객체의 참조와 테이블의 외래 키를 매핑해보자 방향 예를 들어 회원과 팀이 있을 때 둘 중 한쪽만 참조하는 것을 단방향 관계라고 한다. 반대로 양쪽 모두 서로 참조하는 것을 양방향 관계라 한다. 방향은 객체관계에서만 존재하고 테이블은 항상 양방향이다. 다중성 [다대일(N:1)], [일대다(1:N)], [일대일(1:1)], [다대다(N:M)] 다중성이 있다. 회원과 팀 관계에서 여러 회원은 한 팀에 속하므로 회원과 팀은 다대일 관계다. 반대로 한 팀에 여러 회원이 소속될 수 있으므로 팀과 회원은 일대다 관계다. 연관관계의 주인 객..
JPA 공부 - 4 2021/02/25 - [IT/데이터베이스] - JPA 공부 - 3 4. 엔티티 매핑 JPA를 사용하는 데 가장 주우요한 일은 엔티티와 테이블을 정확히 매핑하는 것이다. JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. 객체와 테이블 매핑 기본 키 매핑 필드와 컬럼 매핑 연관관계 매핑 4.1 @Entity JPA를 사용해 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 부여야 한다. @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. 주의사항 기본 생서자 필수 final 클래스, enum, interface, inner 클래스에는 사용할 수 없다. 저장할 필드에 final 을 사용하면 안 된다. 4.2 @Table @Table은 엔티티와 매핑할..
JPA 공부 - 2 2021/01/18 - [IT/데이터베이스] - JPA 공부 - 1 JPA 공부 - 1 2021/01/17 - [IT/데이터베이스] - JPA 공부 - 0 1. JAP 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 저장소 JDBC API 를 사용해서 SQL을 데이터 demoversion.tistory.com 2. JPA 시작 2.1 이클립스 설치와 프로젝트 불러오기 예제 경로 https://github.com/holyeye/jpabook 2.2 H2 데이터베이스 설치 다운로드 경로 : https://www.h2database.com/ 2.3 라이브러리와 프로젝트 구조 위 3개 챕터는 설정이라 넘어감 2.4 객체 매핑 시작 회원 테이블 CREA..
백업과 복구 백업과 복구 지속성과 성능이 양립하는 구조 DBMS의 3가지 구조 트랜잭션에는 지속성이라는 성질이 있음 시스템 장애에도 지속성을 유지할 수 있어야함 DBMS 에서는 지속성과 성능이 양립할 수 있도록 하고 있음 로그선행 쓰기(WAL) 데이터 파일 변경을 직접 수행하지 않고 로그를 먼저 변경하고 변경사항을 기록한 로드 레코드를 써서 동기화 하는 구조 MySQL에서는 이 로그를 InnoDB 로그로 부름 WAL 의 장점 디스크에서 연속해서 쓰기 때문에 무작위로 쓰는 것보다 성능이 좋다. 트랜잭션이 발생하게 되면 이를 모두 Sequential 한 Log 형태로 보관 디스크에 쓰는용량과 횟수를 줄일 수 있다. Sequential 형태로 데이터를 나열하게 되면 특별한 연산이 필요가 없고 디스크 헤더 움직이도 적기 때..
트랜잭션과 동시성 제어 트랜잭션과 동시성 제어 트랜잭션이란? 갱신은 단일 쿼리가 아닌 복수 쿼리를 연속적으로 수행하는 경우가 대부분 또한 갱신 전에 조회를 포함해서 사용하는일이 많음 이러한 쿼리들을 한 덩어리로 포함하여 다뤄야 함 → 이런 복수 쿼리를 한 단위로 묶은 것 원자성 데이터의 변경을 수반하는 일련의 데이터 조작이 전부 성공할지, 전부 실패할지를 보증하는 구조 예를 들어 A, B, C 작업이 순차적으로 있을 경우 A → B → C 가 하일련의 데이터 조작으로 묶임 그리고 A, B, C 중 하나라도 실패할 경우 전부 롤백 A, B, C 를 하나의 원자 단위로 보는 관점 일관성 기존의 데이터 베이스가 데이터 조작 전후에 그 상태를 유지하는 것을 보증 이를 위해 데이터베이스에서는 오브젝트에 대해 각종 정합성 제약을 추가할 ..
데이터베이스와 아키텍쳐 구성 데이터베이스와 아키텍쳐 구성 DB 서버의 다중화 - 클러스터링 클러스터링이 어려운 컴포넌트로 인식 데이터를 보존하는 '영속 계층' 이기 때문 '데이터의 정합성이 중요하기 때문' 가장 기본적인 다중화 DB 서버 N, 저장소 1 Active-Active : 클러스터를 구성하는 컴포넌트를 동시에 가동 Active-Standby : 클러스터를 구성하는 컴포넌트 중 실제 가동하는 것은 Active, 남은 것은 대기하고 있는다. Active-Active 구성의 장단점 시스템이 다운되어 있는 시간이 짧다 복수의 DB 서버가 동시에 작동하고 있어서 한 대가 다운되어 동작 불능이 되어도 남은 서버가 처리를 계속하기 떄문에 시스템 전체가 정지하는 것을 방지할 수 있음 성능이 좋다 동시에 가동하..
ORACLE 전체 테이블 검색 전체 테이블 검색 현재 사용자가 엑세스 할 수 있는 관계형 테이블 (ALL_TABLES) SELECT * FROM ALL_TABLES WHERE TABLE_NAME = '테이블명'; 데이터베이스의 모든 관계형 테이블 (DBA_TABLES ) SELECT * FROM DBA_TABLES WHERE TABLE_NAME = '테이블명'; 현재 사용자가 소유한 관계형 테이블 (USER_TABLES ) SELECT * FROM USER_TABLES WHERE TABLE_NAME = '테이블명'; 관련 속성 OWNER : Owner of the table TABLE_NAME : Name of the table TABLESPACE_NAME : Name of the table..
IT 기초 공부 (추가중) IT 기초 자바 기초 자바 메모리 영역 메서드 영역 : static 변수, 전역변수, class정보 스택 : 지역변수, 함수(메서드), LIFO 방식 힙 : 동적할당 객체 gc가 관리함 메모리 상수풀 영역 : 힙영역에 생성, 프록세스 종료까지 계속 유지, 작성한 상수값을 가지고 있음 인터페이스 사용 이유 인터페이스 작성된 책임은 항상 구현되어 있다는 강제성을 가짐 -> 이를 통해 다형성 및 기타 유연한 작업이 가능해짐 Mark 역할을 하여 특정 기능을 표시해줌(Serializable 등) JDBC란? 자바에서 데이터베이스 접속할 수 있도록 하는 자바 api 직렬화란? 스트림을 통해 입출력이 가능할 수 있도록 전달할 수 있는 구조로 변경하는 것 serialVersionUID 선언 이유 직렬화/역직렬화 때 ..