반응형 전체 글89 계층형 데이터모델에 대해 알아봅시다! 계층형 데이터모델에 대해 알아봅시다! 1) 계층형 데이터 모델( Hierarchical Model )개념데이터를 트리(tree) 구조로 저장하는 모델입니다.부모–자식(상하 관계)가 1개 방향으로 연결됩니다.특징: 자식은 부모를 1명만 가질 수 있음(여러 부모 불가) → 구조가 단순하고 이해가 쉬움.예시(회사 조직도)CEO(부모)부장(자식)팀장(자식)사원(자식)“상사는 1명”이라는 조직 구조를 표현하기 좋습니다.이미지의 EMP 테이블 예시(관리자 MGR)직원 테이블에 MGR(관리자 사번)이 있고, 이 값으로 상사를 가리킵니다.예를 들어:KING은 최고 관리자라 MGR = NULLBLAKE의 MGR = KING의 사번ALLEN의 MGR = BLAKE의 사번이렇게 따라가면 “누가 누구 밑인가”가 트리처럼 나옵.. 2026. 2. 21. 관계와 조인(Join)의 개념 관계와 조인(Join)의 개념 1) 조인(Join)이란?서로 다른 테이블을 공통 키(보통 PK–FK)로 연결해서 한 번에 조회하는 방법입니다.관계형 DB에서는 데이터를 테이블로 나눠 저장하므로(정규화), 필요한 정보를 한 화면에 보려면 조인이 자주 필요합니다.예시(고객 + 주문)고객 이름은 Customers 테이블에 있고,주문 정보는 Orders 테이블에 있습니다.둘을 같이 보려면 CUSTOMER_ID로 연결(조인)합니다.2) 예시 테이블 구조(이미지 내용)CUSTOMERS(고객)CUSTOMER_ID(PK), NAME, ADDRESS, …ORDERS(주문)ORDER_ID(PK), CUSTOMER_ID(FK), STATUS, SALESMAN_ID, …핵심ORDERS.CUSTOMER_ID가 CUSTOMERS.. 2026. 2. 21. 반정규화는 무엇인가요? 반정규화는 무엇인가요? 1) 반정규화란?정규화는 “중복 제거 + 테이블 분리”였죠.반정규화는 그 반대입니다.성능을 위해 일부 중복을 의도적으로 허용하거나, 분리된 테이블을 합쳐 구조를 단순화합니다.한 줄 정의“조회 성능/쿼리 단순화가 더 중요할 때 일부 중복을 감수하는 설계”2) 반정규화를 고려하는 상황(언제 쓰나?)이미지 요지는 3가지입니다.조회 성능이 너무 느릴 때정규화된 테이블을 조인(join) 많이 하면 느려질 수 있음읽기가 많은 시스템(대시보드/통계/리포트)에 특히 효과적쿼리가 너무 복잡할 때여러 테이블 조인/서브쿼리로 개발·운영이 어려움한 테이블에서 바로 뽑게 만들면 단순해짐트랜잭션 처리 시간이 문제일 때조인/집계가 많아 처리 시간이 늘어나면 병목이 생김미리 계산해 저장하면 빨라짐3) 반정규화.. 2026. 2. 21. 정규화의 형태에대해 알아보자 정규화의 형태에대해 알아보자 1) 1NF(제1정규형): “한 칸에는 값 1개”핵심 규칙속성(컬럼)은 하나의 값만 가져야 합니다.한 컬럼에 “전화번호 2개”처럼 여러 값이 들어가면 1NF 위반입니다.예시(전화번호)(위반)고객번호이름전화번호31홍길동010-1234-1234, 010-1234-5678(해결 1) 행으로 풀기고객번호이름전화번호31홍길동010-1234-123431홍길동010-1234-5678그런데 이렇게 하면 이름이 중복되죠?그래서 보통 더 깔끔하게는(해결 2) 테이블 분리(정석)고객(고객번호, 이름)고객전화(고객번호, 전화번호순번, 전화번호)2) 2NF(제2정규형): “부분 종속 제거”핵심 규칙1NF를 만족하면서,일반 속성은 ‘전체 기본키’에 완전히 의존해야 합니다.즉, 복합키(키가 2개 이상).. 2026. 2. 20. 정규화의 개념 정규화의 개념1) 정규화란?데이터베이스 설계에서 중복을 줄이고, 데이터 구조를 규칙적으로(체계적으로) 쪼개는 과정입니다.목표는 한 가지입니다:입력/수정/삭제할 때 데이터가 꼬이는 문제(이상 현상)를 없애는 것2) 왜 정규화가 필요하냐?정규화를 안 하면 보통 3가지 문제가 자주 생깁니다(이상 현상).삽입 이상: 새 데이터를 넣고 싶은데 다른 정보가 없어서 못 넣음수정 이상: 같은 정보가 여러 곳에 중복되어 있어서 하나만 고치면 불일치 발생삭제 이상: 어떤 정보를 지우려다 필요 정보까지 같이 사라짐즉, 정규화는 일관성/무결성을 지키려고 합니다.3) 예시로 한 번에 이해하기(수강신청 예시)정규화 안 된 테이블(문제 구조)수강신청 테이블을 이렇게 만들었다고 해볼게요.학번학생이름과목1과목2과목31001홍길동DBP.. 2026. 2. 20. 식별자 식별자 1) 식별자(Identifier)란?엔티티(테이블) 안에서 각 행(인스턴스)을 유일하게 구분하는 값입니다.한마디로 “중복 없이 딱 1건을 찍어내는 번호”입니다.논리 모델에서는 식별자, 물리 모델(DB)에서는 보통 키(Key), PK라고 부릅니다.예시학생 테이블: 학번(student_id)직원 테이블: 사번(emp_id)주문 테이블: 주문번호(order_id)2) 좋은 식별자의 특징(조건)이미지 핵심 4가지입니다.유일성: 중복되면 안 됨이름은 동명이인이 있어서 식별자로 부적절최소성: 꼭 필요한 속성만으로 구성(가능하면 짧게)“학번” 하나로 되면, “학번+이름+전화번호” 같은 조합은 과함불변성: 한 번 정해지면 바뀌지 않는 게 좋음전화번호/주소는 바뀔 수 있어 식별자로 부적절존재성: 값이 반드시 있어.. 2026. 2. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음 반응형