목록DB (19)
PracticeEveryday

OneToOne - 유저, 프로필 테이블은 1:1 관계이다. - 유저에서는 타입을 프로필 테이블로, 프로필에서는 타입을 유저로 지정해줍니다. - 그리고 @JoinColumn()을 사용한 필드는 FK( 외래 키 )로 타겟 테이블( 유저 )에 등록되게 됩니다. @JoinColumn()은 반드시 한 쪽 테이블에서만 사용해야 합니다. import { Entity, Column, PrimaryGeneratedColumn, OneToOne } from "typeorm"; import { ProfileEntity } from "./profile.entity"; @Entity("user") export class UserEntity { @PrimaryGeneratedColumn("uuid") id: string; @C..

Find Options 1. Basic Options - 모든 Repository와 Manager는 QueryBuilder를 사용하지 않고 find 메서드를 사용해서 필요한 데이터를 쿼리하는 데 사용할 수 있습니다. - Select : 선택해야 하는 기본 개체의 속성을 나타냅니다. userRepository.find({ select: { firstName: true, lastName: true, } }) SELECT "firstname", "lastName" FROM "user"; - Relations : 관계는 메인 엔티티와 함께 로드되어야 합니다. 하위 관계와도 로드 가능합니다. ( join은 leftJoinAndSelect의 약어입니다. ) userRepository.find({ relations:..

Entity란 - 데이터베이스에 테이블에 매핑되는 클래스이다.. - 별도의 클레스에 @Entity()로 선언하여 매핑 내용을 정의한다. - 각 Entity는 DB테이블의 열과 그 관계에 대해 정의한다. import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() firstName: string; @Column() lastName: string; @Column() isActive: boolean; } Entity Clumns - Primary Column - 각 Entity는 적어도 하나의 Primary Column..

논리적 데이터 모델링 - 데이터 모델링을 여러 사람이 분업하게 된다면, 최고 실력자는 개념적 데이터 모델링에 투입해야 된다. - 그만큼 전단계인 개념적 데이터 모델링이 중요하기 때문이다. => 단계적으로 앞인 이유가 더 쉽기 때문이 아니라 가장 어렵고 중요하기 때문이다. - 개념적 모델링이 잘 되어있다면, 논리적 모델링은 꽤나 기계적으로 풀이될 수 있다. - 개념적 모델링이 업무에서 개념을 뽑아내는 것이라면 논리적 모델링은 뽑아낸 개념을 관계형 데이터베이스 체계에 어울리도록 데이터 형식을 잘 정리하는 것이다. - 관계형 데이터베이스 체계에 어울리는, 가장 이상적인 모습으로 개념을 잘 정리하는 것이 포인트이다. Mapping Rule - ERD ( Entity Relationship Diagram )을 통..

개념적 데이터 모델링 - 우리가 파악한 업무에서 개념을 뽑아내는 과정 - 일을 하는 순서와 공부를 하는 순서는 다를 수 있다. ※ 개념적 모델링이 논리적, 물리적 모델링보다 앞선 단계이지만, 논리적 물리적 모델링을 경험해보지 않은 사람이 개념적 모델링을 할 수는 없다. - 다음 단계를 위한 요소들을 추출해내는 과정이기 때문에 관계형 데이터베이스 모델링의 가장 중요한 부분이다. - 첫 단추를 잘 꿰면 다음 수순은 물 흐르듯이 진행될 수가 있다. ※ 필터 : 현실에서 개념을 추출해내는 도구 ※ 언어 : 개념에 대해 다른 사람과 대화 할 수 있는 도구 - 아래의 ERD가 필터이자 언어로서의 도구이다. ※ Entity Relationship Diagram ( ERD ) - 개념적 데이터 모델링의 도구이자, 결과..

관계형 데이터베이스 모델링 - 관계형 데이터베이스( RDB )는 key와 value 관계를 table화 시킨 간단한 원칙의 전산정보 DB이다. - 관계형 모델은 Data를 Column과 Row를 이루는 하나 이상의 Table( 혹인 Relation )으로 정리하며, Primary Key가 각 Row를 식별한다. ( Row는 Tuple이나 Record로 부른다. ) - 일반적으로 하나의 Table은 하나의 Entity ( 실재 )를 대표한다. - Column은 Entity의 속성 ( 이름, 나이, 성별, ... ) 을 나타내며, Row는 Entity의 인스턴스 ( 홍길동, 30, male ...)을 나타낸다. 데이터 모델링의 순서 업무 파악 -> 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적..

Relation : 관계 table 중 데이터 베이스에 사용되기 위한 조건을 갖춘 것이 Relation이다! Relation의 제약조건 1. table 의 cell은 단일 값을 갖는다 : 한 셀에는 하나의 값만 들어간다. 2. 어떤 두 개의 row도 동일하지 않다! 테이블이지만 Relation이 아닌 친구들!! Super: 감독자 Key Key는 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 Column들의 집합 유일성만 만족하면 Super Key가 될 수 있다 ※ 유일성 : 하나의 key 값으로 특정 row만 유일하게 찾아 낼 수 있는 것! Candidate: 후보자 Key Super Key중 더 이상 나뉠 수 없는 Super Key => 각 row를 유일하게 식별 할 수 있는 최소한의 속성 ..

Transaction : 거래 Transaction: 데이터베이스 내에서 수행되는 작업의 최소 단위 // 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. => 이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다. => 데이터베이스의 무결성을 유지하며 DB의 상테를 변화하는 기능을 수행한다. => Transaction은 하나 이상의 Query문을 포함해야하며, ACID( 원자성, 일관성, 고립성, 지속성 ) 4가지 규칙을 만족해야 한다. 트랜잭션의 예시 A => B에게 100만원 송금 A에서 100만원이 빠져 나갔지만 전산 오류로 인해 B에게 100만원이 입금 되지 않음 엄청난 오류 이런 예기치 않은 오류를 방지하게 위해 모든 입출금의 과정은 하나..

Join : 붙다, 가입하다 // JOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 보여주는 Query JOIN의 종류 1. LEFT JOIN 2. RIGHT JOIN 3. INNER JOIN LEFT JOIN // LEFT JOIN은 첫 번째 테이블을 기준으로, 두 번째 테이블을 조합하는 Query [ 첫 번째 테이블 이름 EX) SELECT [ 필드 ] FROM [ 첫 번째 테이블 ] ] LEFT JOIN [ 두 번째 테이블 이름 ] ON [ 조건 ] // ON 절의 조건을 만족하지 않는 첫 번째 테이블의 값은 모두 NULL로 가져옵니다. // ON 절에서는 WHERE 조건문에서 사용하는 모든 조건을 사용할 수 있습니다. SELECT * FROM R..

SELECT SELECT // MySQL에서는 SELECT문을 사용하여 테이블의 레코드를 선택 할 수 있음. SELECT [필드 이름] FROM [테이블 이름] WHERE [조건]; FROM절은 레코드를 선택할 테이블의 이름을 명시함. 해당 테이블에서 선택하고 싶은 필드의 이름을 SELECT 키워드 뒤에 명시하면 됩니다. 모든 필드를 선택하고 싶다면 SELECT 뒤에 * 기호를 사용하면 모든 필드를 선택할 수 있습니다 SELECT * FROM Reservation; // Reservation 테이블에서 모든 필드 선택해서 보여줘 WHERE 뒤의 조건문을 만족하는 레코드 값만 확인 할 수 있습니다!! SELECT * FROM Reservation WHERE Name = '홍길동'; // Reservatio..