본문 바로가기

CS22

[데이터베이스] 데이터베이스 정규화 (1NF ~ BCNF) 데이터베이스 설계의 핵심! 테이블의 중복을 제거하고, 무결성을 보장하기 위한 과정이 바로 정규화(Normalization)입니다.정규화 1단계부터 5단계까지, 그리고 실무에서 어떻게 쓰이는지 한눈에 정리해보겠습니다.🔧 1. 제1정규형 (1NF): 원자값으로 분해하라!정의: 테이블의 모든 컬럼이 원자값(Atomic Value)을 가져야 한다.즉, 하나의 셀에 여러 개의 값이 들어가면 안 됨!예시 (정규화 전):학번이름수강과목1001홍길동DB, 알고리즘 → 정규화 후:학번이름수강과목1001홍길동DB1001홍길동알고리즘 ✅ 포인트: 반복 컬럼이 있으면 안 됩니다.🔧 2. 제2정규형 (2NF): 부분함수 종속 제거조건:1NF 만족기본키가 복합키일 경우, 일부 키에만 종속된 속성 제거예시 (정규화 전): 학번.. 2025. 5. 24.
[데이터베이스] 키, 슈퍼키, 후보키, 기본키 1️⃣ 슈퍼키(Super Key) – "일단 유일하면 다 슈퍼키"슈퍼키는 테이블의 튜플(레코드)을 유일하게 식별할 수 있는 컬럼(또는 컬럼들의 집합)을 말합니다.즉, 겹치지만 않으면 다 슈퍼키입니다.예를 들어 학생 테이블이 있다고 가정합시다:학번이름생년월일2023001홍길동2000-01-012023002김철수1999-12-31 여기서 유일하게 식별 가능한 조합들:학번학번 + 이름학번 + 생년월일학번 + 이름 + 생년월일이 전부 슈퍼키입니다.즉, 유일성만 만족하면 다 슈퍼키입니다.2️⃣ 후보키(Candidate Key) – "진짜 꼭 필요한 것만 남기자"슈퍼키 중에서 더 이상 뺄 수 없는 최소한의 컬럼 조합, 그게 바로 후보키입니다.즉, 유일성 + 최소성을 만족하는 키죠.위 예시에서:학번 → ✅ 유일 + .. 2025. 5. 24.
IPSec(Internet Protocol Security) IPSec(Internet Protocol Security)은 인터넷 프로토콜(IP)에서 데이터를 보호하기 위한 보안 프레임워크입니다.Layer 3에서 암호화를 제공하며, 인증을 통해 데이터의 기밀성, 무결성, 그리고 송신자의 신원을 보장합니다. 🔹 1단계: IKE Phase 1 – 보안 협상 채널 만들기 (ISAKMP SA)목적: 양 끝단 장비 간 신뢰를 확보하고, 암호화된 터널을 만드는 것📦 과정단계설명1. Initiator가 협상 시작서로의 정책(ISAKMP policy: 암호화, 해시, 인증, DH 그룹 등) 비교2. DH(Diffie-Hellman) 키 교환공유 비밀 키를 계산할 재료 준비3. 인증 방식 처리Pre-shared Key, RSA, X.509 등으로 상대 인증4. ISAKMP.. 2024. 9. 20.
Blocking / Non Blocking, Synchronous / Asynchronous Blocking / Non Blocking Synchronous / Asynchronous Blocking / Non Blocking Blocking / Non Blocking은 호출되는 함수가 바로 제어권을 리턴 하느냐 마느냐 가 관심사 제어권을 리턴하지 않으면 Blocking 제어권을 리턴하면 NonBlocking → 제어권이 누구한테 있는지? Synchronous / Asynchronous Synchronous / Asynchronous는 호출되는 함수의 작업 완료 여부를 누가 신경 쓰냐 가 관심사 호출되는 함수의 작업 완료를 호출한 함수가 확인하면 Synchronous (동기) 호출되는 함수의 작업 완료를 호출된 함수가 확인하면 Asynchronous (비동기) → 호출한 함수의 완료 여부를 누가.. 2023. 10. 3.
[TCP/IP MODEL] 1계층 물리 계층 물리적인 매체를 이용해 비트 스트림을 전송 비트 단위 전송 010100 2계층 데이터링크 계층 hop to hop 전송 담당 Mac 주소 사용 유선 - 이더넷 MTU 1500byte 무선 - LTE IP주소를 이용해 바로 옆(라우터, Host)으로 전달하는 역할을 하는 계층 데이터를 전송하고자 할 때 매체를 타고 전파된다. 매체를 이용하면 브로드캐스트로 전파된다. (사람이 공기를 이용해 말을 하듯이) 여러 노드가 동시에 매체를 이용하게되면, 충돌이 발생한다. 충돌을 해결하기 위해 여러 시도 -> 정해진 시간마다 노드가 데이터를 보내는 방식 현재 사용하는 방식은 임의로 아무때나 Random Access하는 방식을 사용 임의로 아무때나 매체에 접근하므로 충돌은 언젠간 발생하며, 충돌을 해결.. 2022. 8. 31.
[데이터베이스] 트랜잭션 고립 수준 쓰기와 쓰기가 동시에 작업하는 것이 불가능 읽기와 읽기는 동시에 언제든 가능 문제 부분은 쓰기 트랜잭션과 읽기 트랜잭션이 동시에 일어날 때 하나의 트랜잭션은 발생 시점부터 데이터 일관성을 가져야 한다. Read uncommited - 오손 읽기(Dirty read) commit되지않은 데이터를 읽는 문제 Read commited - 반복 불가능 읽기(Non repeatable read) update -> commit된 데이터를 읽어, 데이터 일관성이 깨진다. Repeatable read - 유령 데이터 읽기(Phantom read) 트랜잭션 시작 전 commit 된 데이터만 undo영역을 이용하여 읽는다. 일관성이 깨지지 않는다. insert -> commit 된 데이터를 읽어, 데이터를 추가로 읽어 데.. 2022. 8. 23.