전체 글
-
[SQL] 정규화 정리SQL 2023. 11. 7. 16:43
SQL 정규화릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러개로 분리하는 과정자료의 중복성 감소독립적인 관계는 별개의 릴레이션으로 표현각각의 릴레이션은 독립적인 표현이 가능해야한다. 데이터베이스 이상현상1개의 필드에 1개의 값이 존재해야하지만 여러개의 값이 동시에 들어간다.삭제할 때 필요한 데이터가 같이 삭제된다.데이터 삽입 시, 하나의 필드에 null이 되어 삽입이 안된다. 제1정규형더 이상 분해될 수 없는 원자 값으로만 구성이 되어야 한다.제2정규형기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적이어야한다. (부분 함수의 종속성 제거)동등한 릴레이션으로 분해하고, 정보 손실이 없어야한다.제3정규형기본키가..
-
[SQL] 키 정리SQL 2023. 11. 7. 15:41
슈퍼키는 유일성을 가지고 후보키는 최소성을 가진다. 기본키PK 또는 프라이머리키라고 부른다.유일성(중복 불가)과 최소성(필드를 최소한으로 조합)을 만족한다.자연키 또는 인조키 중에 골라서 설정자연키 : 중복된 값을 가지는 필드를 제외하고 자연스럽게 남은 필드를 자연키라고 하며, 언젠가 변하는 속성을 갖는다.인조키 : 인위적으로 생성한 키(auto increasement)로 변하지 않아 보통 기본키로 사용한다. 외래키FK라고 부른다.다른 테이블의 기본키를 그대로 참조하는 값중복되어도 상관없다. 후보키기본키가 될 수 있는 후보유일성과 최소성을 동시에 만족한다. 대체키후보키가 2개 이상일 경우 어느 하나를 기본키로 지정하고 남은 키 슈퍼키각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키 출처)책 :..
-
[SQL] 관계선 정리SQL 2023. 11. 7. 15:18
관계선실선 : 식별관계 / 부모, 자식 관계에서 자식이 부모의 키를 외래키로 참조점선 : 비식별관계 / 부모, 자식 관계에서 자식이 부모의 키를 일반 속성으로 참조 관계선 종류1 대 1 관계 : 부모는 하나의 자식이 있다.1 대 N 관계 : 부모는 하나 이상의 자식이 있다.N 대 N 관계 : 하나 이상의 부모와 자식이 있다.1대 1 관계 : 부모는 하나의 자식이 있을 수도 있고, 없을 수도 있다.1 대 N 관계 : 부모는 여러 개의 자식이 있을 수도 있고, 없을 수도 있다. 출처)https://parkhyeokjin.github.io/others/2018/11/07/DbERD.html
-
SQL 데이터 타입카테고리 없음 2023. 11. 7. 15:01
DATE 날짜만 존재, 시간은 없음 지원 범위 : 1000-01-01 ~ 9999-12-31 3바이트의 용량 DATETIME 날짜 및 시간을 포함한다. 지원 범위 : 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8바이트의 용량 TIMESTAMP 날짜 및 시간을 포함한다. 지원 범위 : 1970-01-01 00:00:01 ~ 2038-12-31 03:14:07 4바이트의 용량 TEXT 큰 문자열 저장에 사용 (게시판 본문) BLOB 이미지, 동영상 등 큰 데이터 저장에 사용 아마존 이미지 호스팅 서비스(S3)에서는 서버 파일에 관한 정보를 VARCHAR로 저장 출처) 책 : 면접을 위한 CS 전공지식 노트
-
자바 디자인 패턴(4)_옵저버 패턴Java 2023. 11. 6. 16:59
옵저버 패턴 객체의 상태 변화를 보고있는 관찰자(주체)가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 추가 변화 사항이 생기는 객체들(옵저버들)에게 변화를 알리는 패턴 MVC 패턴에서 사용된다. Model에서 변경사항이 생겨 옵저버인 View에게 알려주고 이를 기반으로 Controller가 동작한다. // topic을 기반으로 옵저버 패턴을 구현 - Observer a = new TopicSubscriber("a", topic);으로 해당 이름과 어떤 topic의 옵저버가 될지 결정 import java.util.*; interface Subject { public void register(Observer obj); public void unregister(Observer o..
-
자바 디자인 패턴(3)_전략 패턴Java 2023. 11. 6. 16:58
전략 패턴 객체의 행위를 바꾸고 싶을 때 캡슐화한 알고리즘 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴 // 결제 방식(전략)만 바꿔서 결제하는 로직 import java.util.*; interface PaymentStrategy { public void pay(int amount); } class KAKAOCardStrategy implements PaymentStrategy { private String name; private String cardNumber; private String cvv; private String dateOfExpiry; public KAKAOCardStrategy(String nm, String ccNum, String cvv, String expiryD..
-
자바 디자인 패턴(2)_팩토리 패턴Java 2023. 11. 6. 16:57
팩토리 패턴 객체 생성 부분을 떼어내 추상화한 패턴 상속 관계에 있는 두 클래스 중에 상위 클래스가 뼈대를 결정하고 하위 클래스가 객체 생성에 구체적인 내용을 결정 상위 클래스는 인스턴스 생성 방식을 알 필요가 없어 유연성을 가진다. 객체 생성 로직이 따로 있기 때문에 코드를 리팩터링해도 한 부분만 고치기 때문에 유지보수성이 증가한다. // 상위 클래스인 CoffeeFactory에서 Latte, Americano 같은 하위클래스의 구체적인 내용을 통해 가격을 산출 abstract class Coffee { public abstract int getPrice(); @Override public String toString() { return "coffee price : " + this.getPrice();..